我已经声明了我的数据库名称,需要在查询中执行它,这样我就不必每次都键入名称。它看起来像这样:
DECLARE @db_source varchar(255), @db_target varchar(255)
SET @db_source ='database1'
SET @db_target ='database2'
--现在,我想通过从@db_source 中的表中选择数据,将值插入@db_target
Insert into @db_target.dbo.table1 (field1,field2)
select (field1,field2) from @db_source.dbo.table1
where <some conditions>
--但每次执行查询时都会出错--如何修复?
这可以使用动态SQL:来完成
declare @SQL varchar(8000)
set @SQL = '
Insert into ' + @db_target + '.dbo.table1 (field1,field2)
select (field1,field2) from ' + @db_source + '.dbo.table1
where <some conditions>
'
execute (@SQL)