需要建一个游标,像下面的样子
declare c cursor for
select col1...
from server1.db1.dbo.table1
...
其中,server1.db1是不确定的,不知道这样的功能可不可以实现?
declare c cursor for
select col1...
from server1.db1.dbo.table1
...
其中,server1.db1是不确定的,不知道这样的功能可不可以实现?
然后执行动态sql语句
set @lnksrv='server1.db1.'
set @sql='declare c cursor for
select col1...
from '+@lnksrv +'dbo.table1'
exec(@sql)
CREATE TABLE TestA(A INT, B VARCHAR(3))
INSERT INTO TestA
SELECT 1, 'A'
UNION ALL SELECT 2, 'B'
UNION ALL SELECT 3, 'C'
UNION ALL SELECT 4, 'D'CREATE TABLE TestB(A INT, B VARCHAR(3))
INSERT INTO TestB
SELECT 5, 'E'
UNION ALL SELECT 6, 'F'
UNION ALL SELECT 7, 'G'
UNION ALL SELECT 8, 'H'DECLARE @SQL VARCHAR(1000)
DECLARE @T VARCHAR(10)
SET @T = 'TestA'SET @SQL = 'DECLARE CUR CURSOR FOR SELECT A, B FROM ' + @T
SET @SQL = @SQL + '
DECLARE @A INT, @B VARCHAR(3)
OPEN CUR
FETCH FROM CUR INTO @A, @B
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT CAST(@A AS VARCHAR) + @B
FETCH FROM CUR INTO @A, @B
END
CLOSE CUR
DEALLOCATE CUR'EXEC(@SQL)
DROP TABLE TestA,TestB