赛捷软件论坛's Archiver

vicky.yu 发表于 2019-4-8 12:47

如何在sql里导出accpac中所有的数据库名和公司名

可以使用如下查询语句
DECLARE @sysname sysname;
DECLARE @sql nvarchar(max);
DECLARE @sqlPrefix nvarchar(max);
DECLARE @sqlSuffix nvarchar(max);

SET @sql='';
SET @sqlPrefix='SELECT ORGID COLLATE DATABASE_DEFAULT AS ORGID, ' +
                           'CONAME COLLATE DATABASE_DEFAULT AS CONAME FROM';
SET @sqlSuffix='.dbo.CSCOM';
DECLARE My_Cursor CURSOR
FOR (select [name] from [master].[dbo].[sysdatabases])
OPEN My_Cursor;
FETCH NEXT FROM My_Cursor INTO @sysname;
WHILE @@FETCH_STATUS = 0
    BEGIN
        IF OBJECT_ID('[' + @sysname + '].dbo.CSCOM') IS NOT NULL
                        begin
                                if LTRIM(RTRIM(@sql))=''
                                        begin
                                                SET @sql = @sql + @sqlPrefix + ' [' + @sysname + ']' + @sqlSuffix + ' '+CHAR(10);
                                        end
                                else
                                        begin
                                                SET @sql = @sql + 'UNION ALL' +CHAR(10) + @sqlPrefix + ' [' + @sysname + ']' + @sqlSuffix + ' '+CHAR(10);
                                        end
                        end        
        FETCH NEXT FROM My_Cursor INTO @sysname;
    END

PRINT @sql;
EXEC(@sql);
CLOSE My_Cursor;
DEALLOCATE My_Cursor;
GO

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.