SqlCommand和多行注释出错

时间:2014-01-20 16:43:42

标签: .net sql-server sqlcommand

我使用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问题......

http://social.msdn.microsoft.com/Forums/sqlserver/en-US/7e5ef20d-4b19-4930-9b1f-64304e6987e2/missing-end-comment-mark?forum=sqlreplication

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

1 个答案:

答案 0 :(得分:4)

我没有看到重点,但问题是GOGO不是Transact-SQL,它是SSMS等工具的批处理分隔符。不使用GO(或首先没有多行评论或任何评论)尝试。