尝试真的很难使用-v开关将变量传递给SQL脚本(Python),但似乎无法获得正确的语法。我收到以下错误:Python/SupProcess/SqlCmd /使用-v开关来传递变量
(注意它是如何失去了C:从参数和附加关闭反斜线)
[标准输出] SQLCMD:“:\用户\公用\的Myproj \测试\ WorkingFolder \数据库\“':无效参数。输入' - ?'对于
在服务器端的帮助,这是我的语法:
FILENAME = N'$(LOCATION)\MyDatabase.mdf'
下面是我的代码
_varText = 'LOCATION="C:\\Users\\Public\\MyProj\\Tests\WorkingFolder\\Database"'
command_process = SubP.Popen(['sqlcmd','-b', '-E', '-S', _server, '-v', _varText , '-d', _database, '-i', filepath],
stdin = SubP.PIPE, stdout = SubP.PIPE, stderr = SubP.STDOUT, shell = True)
圣克拉波拉 - 我终于必须做一个工作(对于任何人后来阅读)。在python结尾,我用一个标记替换了冒号(我选择了“{col}”,然后在T-SQL结尾做了反向替换。它并不漂亮,但它让我有了这个问题。发送一个冒号 –