我有一个.sql
文件,该文件使用动态SQL编写DB用户和权限的脚本。它使用PRINT命令输出要执行的实际脚本。我正在使用Powershell来自动化需要执行的过程:
MyDatabase
执行此脚本并保存结果MyDatabase
顶部恢复新数据库当前,我正在捕获输出并将其使用sqlcmd -o参数保存为文件,如下所示:
sqlcmd -e -i ($path + "ScriptUsers.sql")
-d $MyDatabase -S $MyServer -o "MyNewUsersScript.sql"
在大多数情况下,这都很好用。缺点是MyNewUsersScript.sql
包含ScriptUsers.sql
的整个文本以及打印输出。我只真正想要打印的输出,并且我假设这就是我要提供的输出,因此我不确定为什么MyNewUsersScript.sql
包含ScriptUsers.sql
的脚本及其输出。 FWIW,我尝试在Get-Content
上进行MyNewUsersScript.sql
,并用空字符串替换ScriptUsers.sql
中的文本,但这没用。