在游标内使用游标值进行查询

Use Cursor Value for a Query inside Cursor

我想将我们在数据库服务器 A 上的一些视图保存到数据库服务器 B 中的固定 table 中。 我的计划如下: 我从数据库服务器 A 获取所有视图并将其写入数据库服务器 B 中的帮助程序-table。

然后我创建一个游标,为每个游标值执行以下查询:"select * into DBServerB.dbo.@CursorValue from DBServerA.dbo.@CursorValue"

我当前的代码如下所示:

 declare @tView as nvarchar(128)


 DECLARE CursorViews CURSOR local fast_forward
    for
    select [name] from dbo.TablesforImport


Open CursorViews

fetch next from CursorViews into @tView
while (@@fetch_status = 0)
Begin
'Select * into [DBServerB].[DB].dbo.'+@tView +' FROM [DBServerA].[DB].[dbo].'+ @tView
fetch next from CursorViews into @tView
end;
close CursorViews
deallocate CursorViews

目前我正在努力进行查询。有任何想法吗? :)

你可以使用这个:

DECLARE cur CURSOR LOCAL FAST_FORWARD FOR
    SELECT
        name
    FROM
        TablesforImport
    OPEN cur;

    FETCH NEXT FROM cur INTO @name;

WHILE @@FETCH_STATUS = 0
BEGIN

    set @sql= 'SELECT * into [DBServerB].[DB].dbo.[' + @name + '] FROM [DBServerA].[DB].dbo.[' + @name + ']'

    exec sp_executesql @sql

FETCH NEXT FROM cur INTO @name;
end
close cur
deallocate cur