Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQL中GO附近的语法不正确_Python_Sql Server_Tsql_Syntax Error - Fatal编程技术网

Python SQL中GO附近的语法不正确

Python SQL中GO附近的语法不正确,python,sql-server,tsql,syntax-error,Python,Sql Server,Tsql,Syntax Error,我连接了许多sql语句,并遇到以下错误。 “GO附近语法错误”和“GO附近语法错误”—— 似乎当我删除尾随空格和go,以及go之后的空格,然后按CTRL+Z组合键放回go,这会使错误消失吗?很奇怪 为什么? 我如何用Python编写代码,谢谢 ') END TRY BEGIN CATCH print ERROR_MESSAGE() END CATCH GO 如注释中所述,GO不是SQL语法的一部分,而是ManagementStudio中的批定界符 您可以用两种方法来处理它,使用Subproce

我连接了许多sql语句,并遇到以下错误。 “GO附近语法错误”和“GO附近语法错误”—— 似乎当我删除尾随空格和go,以及go之后的空格,然后按CTRL+Z组合键放回go,这会使错误消失吗?很奇怪 为什么? 我如何用Python编写代码,谢谢

')
END TRY
BEGIN CATCH
print ERROR_MESSAGE()
END CATCH
GO

如注释中所述,
GO
不是SQL语法的一部分,而是ManagementStudio中的批定界符

您可以用两种方法来处理它,使用
Subprocess
调用
SqlCmd
,或者在Python中剪切脚本。
子流程
+
SqlCmd
只有在您不关心查询结果的情况下才真正适合您,因为您需要解析控制台输出才能获得这些结果

我需要根据过去SSMS生成的脚本构建一个数据库,并因此创建了以下函数(更新,因为我现在有了一个更好的版本,可以在其中留下注释):

使用此功能,您可以运行包含
GO
的脚本,如下所示:

    import pymssql

    conn = pymssql.connect(server, user, password, "tempdb")
    cursor = conn.cursor()
    for part in partition_script(your_script):
        cursor.execute(part)

    conn.close()

我希望这有帮助。

GO
不是SQL。将
GO
替换为
。From
GO不是Transact-SQL语句;这是一个由sqlcmd和osql实用程序以及SQL Server Management Studio代码编辑器识别的命令。它不起作用。已尝试过。谢谢有时你确实需要围棋,但分号不起作用。如果你检查这是C,你可以用逻辑。@bansi实际上我不理解你的引用。但问题是,我实际上是在将多个sql文件连接到一个主sql文件中。然后我去sql server执行该文件。我不确定这会有什么帮助,除非我在sql server中有一个循环,它会一个接一个地解压Go sql语句的每个块。你明白我的意思吗?
    import pymssql

    conn = pymssql.connect(server, user, password, "tempdb")
    cursor = conn.cursor()
    for part in partition_script(your_script):
        cursor.execute(part)

    conn.close()