执行SQL查询的正确方法,如从@database_name.dbo.table1中选择*



我已经声明了我的数据库名称,需要在查询中执行它,这样我就不必每次都键入名称。它看起来像这样:

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)

相关内容

最新更新