我有一组 sql 脚本,我使用 C# 中的 SqlCommand 对象将其发送到 SQL 服务器。这些脚本创建存储过程,只要我只创建过程,一切都可以正常工作。如果我的脚本包含通常的“if exists ... drop XYZ; create procedure XYZ ...” block ,我会得到一个错误,它告诉我,create 必须是批处理中的第一个语句。分号和“GO”都不能用作分隔符。
任何提示如何使用单个 SqlCommand 执行这样的脚本?我希望能够将属性设置为“批处理”或类似的东西,但我没有找到任何东西。
最佳答案
冲突的语句必须用批处理分隔符(默认 GO - 你说的不起作用)分隔,或者,如果可能的话,从你的程序逻辑的角度来看,以不同的顺序执行。但是,在大多数情况下,语句顺序的重组是不可能的,因此您必须求助于分批分离,因此我建议分批运行它们。
关于c# - 单个 SqlCommand 中的多个语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3149469/