我有超过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名称分配给变量是一种正确的方法吗?