即使是评论,我的查询也会出现错误。 我没有理解为什么会这样。我在我的大查询脚本之间找到了这个错误代码,我们试图一次性执行所有内容。而且我也尝试在单独的窗口中执行这个注释的脚本,但仍然向我显示错误消息。任何人都可以帮助我理由和灵魂。提前谢谢。
/*
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' '附近的语法不正确。
答案 0 :(得分:2)
在SQLServer中使用注释时要小心:
--
只会对该行进行评论(但如果您使用其他客户端语言打开文本,则可能会出现问题,其中可能会对所有查询进行评论)
/* */
会在之后评论开放式/*
与第一次结束*/
之间的所有内容。
/**** object: ... ***/
行有一个结束标记*/
脚本末尾的*/
会抛出错误,因为它试图终止没有打开的评论。
如果您需要正确评论的代码,我建议在每个功能块上使用/* */
。
要完成,您还可以删除自动/**** object: ... ***/
行,代码将完美运行(阅读:因为评论不会发生任何事情)
答案 1 :(得分:1)
正如您在问题的代码格式中看到的那样,评论由/*002458 -- End */
行关闭。这就是GO
被照亮的原因。如果您在SSMS(或任何体面的代码编辑器)中有此代码,您应该同样看到注释已关闭。因为你的代码没有被注释掉,然后你在最后有一个尾随*/
,这也会导致语法错误。
答案 2 :(得分:0)
当您使用/*
Commented_text */
对代码发表评论时,/*
和*/
成对出现。这意味着你有两个注释代码块。
看起来您想要评论所有代码在开始时看到/*
而在结尾看到*/
。但他们不能作为嵌套工作。满足*/
时,评论的第一个开始结束。所以最后一条车道没有评论。