.net SqlCommand和多行注释出错

.net SqlCommand和多行注释出错,.net,sql-server,sqlcommand,.net,Sql Server,Sqlcommand,我在使用dotnetSqlCommand时遇到了一个奇怪的错误 基本上,我正在执行一个命令文本,其中有一个多行注释,其中有一个GO,例如: /*IF OBJECT_ID ( 'dbo.xxx', 'P' ) IS NOT NULL DROP PROCEDURE [dbo].[xxx] GO */ select * from dbo.abc 我得到的错误是“缺少结束注释标记'*/'” 我能够缩小错误范围,似乎问题与GO有关。如果我移除GO,它会工作 如果执行此命令并在sql概要文件中查看执

我在使用dotnet
SqlCommand
时遇到了一个奇怪的错误

基本上,我正在执行一个命令文本,其中有一个多行注释,其中有一个
GO
,例如:

/*IF OBJECT_ID ( 'dbo.xxx', 'P' ) IS NOT NULL 
DROP PROCEDURE [dbo].[xxx]
GO 
*/

select * from dbo.abc
我得到的错误是“缺少结束注释标记'*/'”

我能够缩小错误范围,似乎问题与
GO
有关。如果我移除
G
O,它会工作

如果执行此命令并在sql概要文件中查看执行的查询,我会得到:

/*IF OBJECT_ID ( 'dbo.xxx', 'P' ) IS NOT NULL 
DROP PROCEDURE [dbo].[xxx]
所以部分查询没有执行。。。和结束注释标记丢失

我搜索了一下,看看是否有人有这个问题,因为我在msdn上看到了这篇文章,上面有一个类似的
GO
问题


我是唯一有这个问题的人吗?有解决办法吗?

我看不出重点,但问题是
去哪里
GO
不是Transact-SQL,它是SSMS等工具的批处理分隔符。试一下,不要使用
GO
(或者首先不要使用多行注释或任何注释)。

我看不出重点,但问题是
GO
GO
不是Transact-SQL,它是SSMS等工具的批处理分隔符。不使用
GO
(或者首先不使用多行注释或任何注释)进行尝试。

通过SQLCommand将注释传递到正在运行的查询中有什么意义?我理解您何时将存储过程保存到服务器,但我不理解这里的要点。我们有一个工具,它能够将sql脚本部署到数据库。基本上不用工具A部署到SQL Server,工具B部署到Oracle,工具C部署到mysql等等。。。我们所拥有的是一个工具,它能够做一些事情,比如db版本控制,部署到“任何”db引擎,等等。。。为了将sql代码部署到db,我们创建一个DbCommand并执行脚本。有时脚本包含带有GO字符串的注释。好吧,不要在注释中插入注释,不知道您期望的其他解决方案。通过SQLCommand将注释传递到正在运行的查询中有什么意义?我理解您何时将存储过程保存到服务器,但我不理解这里的要点。我们有一个工具,它能够将sql脚本部署到数据库。基本上不用工具A部署到SQL Server,工具B部署到Oracle,工具C部署到mysql等等。。。我们所拥有的是一个工具,它能够做一些事情,比如db版本控制,部署到“任何”db引擎,等等。。。为了将sql代码部署到db,我们创建一个DbCommand并执行脚本。有时脚本包含带有GO字符串的注释。好吧,不要在注释中插入注释,不知道您期望的其他解决方案。我知道问题在于GO。我不知道为什么它会在注释中被解释。因为它首先被解析,在注释之前。我知道问题在于GO。我不知道为什么它会在注释中被解释,因为它首先被解析,在注释之前。