目前,我正在根据一些业务规则在一个数据库到另一个数据库之间进行一些数据迁移。
我正在编写这个巨大的脚本,其中多次引用这两个数据库。问题是这种数据迁移目前正在开发中,在某些时候我将需要在生产中使用两个不同的数据库来完成它。
而不是像这样直接引用数据库名称
Insert Into Database2.dbo.Table1
Select * from Database1.dbo.Table1
我想以某种方式在脚本开始时引用数据库。这样当我更改数据库时我可以只更改一个变量。
那可能吗?
Use SQLCMD 变量 http://msdn.microsoft.com/en-us/library/ms188714.aspx:
:setvar dbfrom database1
:setvar dbto database2
Insert into [$(dbto)].dbo.Table1
select * from [$(dbfrom)].dbo.Table2;
此语法适用于 sqlcmd.exe(来自脚本)以及 Management Studio,请参阅使用查询编辑器编辑 SQLCMD 脚本 http://msdn.microsoft.com/en-us/library/ms174187.aspx。脚本还允许您从命令行设置变量:
sqlcmd /E /S server /i script.sql /v dbfrom=database1 /v dbto=database2
我也有一个允许您使用应用程序中的 sqlcmd 变量和脚本的库 http://code.google.com/p/dbutilsqlcmd/可作为 Google 代码上的源代码。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)