【发布时间】:2014-08-14 18:07:36
【问题描述】:
我正在尝试从 vb.net 应用程序在 SQL Server 上执行整个 SQL 命令文件。问题是如果 SQL 文件包含任何 CREATE PROCEDURE 命令,我会收到以下错误:
发生了严重错误。 'CREATE/ALTER PROCEDURE' 必须是 查询批处理中的第一条语句。关键字附近的语法不正确 '过程'
Dim sql = sqlFile.ReadToEnd()
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("SiteSqlServer").ToString), cmd As New SqlCommand
With cmd
.Connection = conn
.CommandType = CommandType.Text
.CommandText = sql
.CommandTimeout = 300
End With
conn.Open()
cmd.ExecuteNonQuery
conn.Close()
如何通过包含CREATE PROCEDURE 命令的SqlConnection 执行sql 文件?
【问题讨论】:
-
确保您的 Sql 语句之间有一个批处理分隔符
GO。 -
使用“GO”分隔命令会导致以下错误:发生严重错误。 'GO' 附近的语法不正确。
-
@M.Ali:如果您在 SQL Server Management Studio 中执行脚本,这将起作用 - 但在 .NET 应用程序中,
GO不会帮助.... -
@M.Ali:不,不是真的。我通常做的是有一个
.sql和GO在SSMS 中使用,如果我想从C# 执行这个.sql,我需要在GO分隔符上拆分它并执行每个分别针对 SQL Server 分段
标签: sql sql-server vb.net sql-server-2008