Dis*_*ive 7 sql sql-server variables
目前,我正在根据一些业务规则在一个数据库与另一个数据库之间进行一些数据迁移.
我有这个巨大的脚本,我正在编写我很多次引用这两个数据库的地方.问题是这个数据迁移目前正在开发中,在某些时候我想要在生产中使用两个不同的数据库.
而不是像这样直接引用数据库名称
Insert Into Database2.dbo.Table1
Select * from Database1.dbo.Table1
Run Code Online (Sandbox Code Playgroud)
我想以某种方式在脚本开头引用数据库.这样我就可以在更改数据库时更改一个变量.
那可能吗?
使用SQLCMD变量:
:setvar dbfrom database1
:setvar dbto database2
Insert into [$(dbto)].dbo.Table1
select * from [$(dbfrom)].dbo.Table2;
Run Code Online (Sandbox Code Playgroud)
此语法适用于sqlcmd.exe(来自脚本)以及Management Studio,请参阅使用查询编辑器编辑SQLCMD脚本.脚本还允许您从命令行设置变量:
sqlcmd /E /S server /i script.sql /v dbfrom=database1 /v dbto=database2
Run Code Online (Sandbox Code Playgroud)
我还有一个库,允许您使用来自 Google Code上作为源的应用程序的sqlcmd变量和脚本.