在SQL中将数据库名称设置为变量

在SQL中将数据库名称设置为变量,sql,sql-server,variables,Sql,Sql Server,Variables,目前,我正在根据一些业务规则在一个数据库到另一个数据库之间进行一些数据迁移 我有一个巨大的脚本,我正在编写,我在其中引用了两个数据库很多次。问题是,这种数据迁移目前正在开发中,在某个时候,我将不得不使用两个不同的数据库在生产中进行 而不是像这样直接引用数据库名称 Insert Into Database2.dbo.Table1 Select * from Database1.dbo.Table1 我想在脚本的开头引用数据库。这样我就可以在更改数据库时只更改一个变量 可能吗?使用: 此语

目前,我正在根据一些业务规则在一个数据库到另一个数据库之间进行一些数据迁移

我有一个巨大的脚本,我正在编写,我在其中引用了两个数据库很多次。问题是,这种数据迁移目前正在开发中,在某个时候,我将不得不使用两个不同的数据库在生产中进行

而不是像这样直接引用数据库名称

Insert Into Database2.dbo.Table1    
Select * from Database1.dbo.Table1
我想在脚本的开头引用数据库。这样我就可以在更改数据库时只更改一个变量

可能吗?

使用:

此语法适用于sqlcmd.exe(来自脚本)以及Management Studio,请参阅。脚本还允许您从命令行设置变量:

sqlcmd /E /S server /i script.sql /v dbfrom=database1 /v dbto=database2

我在谷歌代码上也有可用的as源代码。

这是我所知道的唯一依赖动态SQL的方法。否则,创建一个脚本。复制它,并对预期的源和目标数据库引用的引用进行替换。可能是重复的,谢谢,这很好。虽然intellisense停止工作,但我认为没有一个解决方案能够满足这一需求。
sqlcmd /E /S server /i script.sql /v dbfrom=database1 /v dbto=database2