在使用CMD执行脚本时将DB名称分配给某个varibale

时间:2017-09-05 18:36:37

标签: sql sql-server sql-server-2012

我有超过1个sql脚本。我想只使用1条SQLCMD线执行它们,而不是为每个脚本编写单独的SQLCMD线。我可以通过以下方式创建新的.sql文件:r。我只需要在前面分配一个sql脚本名称:r但是我要执行的脚本指的是多个DB。我准备了以下脚本,但它没有按预期工作:

脚本-1

INSERT INTO [$(dbuser1)].[dbo].[A](Name)
VALUES('Tod')

INSERT INTO [$(dbuser2)].[dbo].[B]( Name )
VALUES ('John')

脚本-2

INSERT INTO [$(dbuser1)].[dbo].[A]( Email )
VALUES('tod@gmail.com')

INSERT INTO [$(dbuser2)].[dbo].[B]( Email )
VALUES ('john@gmail.com')

脚本-3

SET NOCOUNT ON
SET NOEXEC OFF

-- Quit when error.
:On Error Exit

-- SQLCMD Variables
:setvar dbname1                 TestDatabase1
:setvar dbname2                 TestDatabase2

:r Script-1.SQL
:r Script-2.SQL

和CMD Line

sqlcmd -S <Serevrname> -i <Script-3 path>

通过将DB名称分配给变量是一种正确的方法吗?

0 个答案:

没有答案