在游标内使用游标值进行查询
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
我想将我们在数据库服务器 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