注释代码抛出错误

时间:2018-03-21 14:40:04

标签: sql sql-server-2008

即使是评论,我的查询也会出现错误。 我没有理解为什么会这样。我在我的大查询脚本之间找到了这个错误代码,我们试图一次性执行所有内容。而且我也尝试在单独的窗口中执行这个注释的脚本,但仍然向我显示错误消息。任何人都可以帮助我理由和灵魂。提前谢谢。

/*

USE [MY_DATABASE]
GO


/*002458  -- End */

GO


/****** Object:  Synonym [dbo].[SYN_BCM_POLICYINVOICE_D]    Script Date: 2/1/2018 7:15:33 PM ******/

IF NOT EXISTS (select * from sys.synonyms where name='SYN_IM_ARCH_PREMIUMBATCH')
BEGIN
CREATE SYNONYM [dbo].[SYN_IM_ARCH_PREMIUMBATCH] FOR [VUEDATA_Billing].[dbo].[IM_ARCH_PREMIUMBATCH]
END


GO

*/

错误消息:

  

Msg 113,Level 15,State 1,Line 10缺少结束评论标记' /'。消息   102,等级15,状态1,行2' '附近的语法不正确。

3 个答案:

答案 0 :(得分:2)

在SQLServer中使用注释时要小心:

--只会对该行进行评论(但如果您使用其他客户端语言打开文本,则可能会出现问题,其中可能会对所有查询进行评论)
/* */会在之后评论开放式/*第一次结束*/之间的所有内容。

/**** object: ... ***/行有一个结束标记*/
脚本末尾的*/会抛出错误,因为它试图终止没有打开的评论。

如果您需要正确评论的代码,我建议在每个功能块上使用/* */

要完成,您还可以删除自动/**** object: ... ***/行,代码将完美运行(阅读:因为评论不会发生任何事情)

答案 1 :(得分:1)

正如您在问题的代码格式中看到的那样,评论由/*002458 -- End */行关闭。这就是GO被照亮的原因。如果您在SSMS(或任何体面的代码编辑器)中有此代码,您应该同样看到注释已关闭。因为你的代码没有被注释掉,然后你在最后有一个尾随*/,这也会导致语法错误。

答案 2 :(得分:0)

当您使用/* Commented_text */对代码发表评论时,/**/成对出现。这意味着你有两个注释代码块。 看起来您想要评论所有代码在开始时看到/*而在结尾看到*/。但他们不能作为嵌套工作。满足*/时,评论的第一个开始结束。所以最后一条车道没有评论。