c# - 单个 SqlCommand 中的多个语句

标签 c# tsql ado.net

我有一组 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/

相关文章:

sql-server - SQL Server批处理问题与错误处理

c# - 动态转换为 IEnumerable<T> 或 T

c# - 你如何使用 C# NetworkStream ReadAsync() 只抓取 stx 和 etx 之间的东西?

c# - 将文件从 iOS 应用程序上传到 Windows Server 的最佳方式?

c# - 将存储库引入 AccountController

tsql - 如果…ELSE…两个互斥插入INTO #temptable

SQL Server : Better to use varchar(MAX) or keep a separate notes table and INNER JOIN it?

sql-server - 具有不同语言的 SQL Server Collat​​ion/ADO.NET DataTable.Locale

c# - 无法连接到C#中的本地数据库

c# - 在 C# 中插入问题,使用 sqlcommand