【发布时间】:2017-03-29 00:35:10
【问题描述】:
我在 Server1 中有一个“test.sql”,我想在 server2 和 server3 上运行这个脚本。我使用了以下代码:
$InstanceNm = "server2\inst2,1433"
$CommandExecute_SP = "D:\testscript\test.sql" --located in Server1
invoke-expression "SQLCMD -E -S $InstanceNm -d 'master' -i $CommandExecute_SP -b"
我从 server1 运行所有代码并以 server2 为目标,但出现此错误:
SQLCMD : Sqlcmd: 'server2\inst2,1433': Unexpected argument. Enter '-?' for help.
然后当我输入-?
它给出了这个:
At line:1 char:2
+ -?
+ ~
Missing expression after unary operator '-'.
At line:1 char:2
+ -?
+ ~
Unexpected token '?' in expression or statement.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingExpressionAfterOperator
我想知道运行 .sql 文件的正确方法是什么,该文件从单独的服务器在另一台服务器上创建对象?我知道如何通过使用System.Data.SQLClient.SQLConnection 来运行简短的 sql 语句,但我想避免这种情况,因为这个 .sql 文件有超过 1000 行代码。
【问题讨论】:
-
test.sql文件也应该复制到server2吗?
-
"$InstanceNm"
标签: sql-server powershell invoke sqlcmd