“go”附近的语法不正确在 SQL Server Management Studio 中
在 MS Sql Server Management Studio 中执行以下 SQL:
drop function f
go
会出现以下解析错误:
消息 102,级别 15,状态 1,第 1 行 “go”附近的语法不正确。
为什么?
如果我打开一个新选项卡并将 SQL 复制/粘贴到其中,它也会失败。 但如果我打开一个新选项卡并完全重新输入 SQL,它就可以正常工作。
Executing the following SQL:
drop function f
go
in MS Sql Server Management Studio give me this parse error:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near 'go'.
Why?
If I open a new tab and copy/paste the SQL into it, it also fails.
But If I open a new tab and retype the SQL entirely, it works fine.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
SQL Server Management Studio 无法处理某些不可打印的字符。
检查换行符,可能您使用的是 Linux (LF) 或 Mac 风格 (CR),而不是 Windows 风格(CR 和 LF)。您可以使用任何高级文本编辑器进行检查,例如 Notepad++·
SQL Server Management Studio can't handle some non printable characters.
Check the newline characters, probably you have Linux (LF) or Mac style (CR) instead of Windows style (CR and LF). You can check with any advanced text editor, for example Notepad++·
您打开了一个 Mac 格式的文件,其中包含回车符 ('\r') 换行符。
SQL 解析器对 CR 换行符的行为不一致。
它支持某些查询,例如“select 1 go”,但对其他查询则失败,例如“drop function f go”。
将所有 sql 文件转换为 windows 编码。
You opened a file in Mac format, with Carriage Returns ('\r') newlines.
The SQL parser behaves inconsistently on CR newlines.
It supports them for some queries, like "select 1 go", but fails on others, like "drop function f go".
Convert all your sql files to windows encoding.
您应该从脚本中删除所有“GO”,它将解决问题。
查看此以获取更多信息:
https://agilewebhosting。 com/knowledgebase/63/SQL-Error-In Correct-syntax-near-andsharp039GOandsharp039.html
矩阵
You should remove all the "GO" from the script and it will resolve the issue.
Check this out for more info:
https://agilewebhosting.com/knowledgebase/63/SQL-Error-Incorrect-syntax-near-andsharp039GOandsharp039.html
Matrix
一直深受这个问题的困扰。最后,使用Notepad++。
修复方法:
格式 > 转换为 UNIX,
然后
格式 > 转换为 Windows
Been suffering with this problem mightily. Finally, used Notepad++.
Fixed by:
Format>Convert to UNIX
followed by
Format>Convert to Windows
我也面临同样的问题,但不确定是什么原因造成的。当复制粘贴到查询编辑器中时,能够执行它。
彻底的过程只有它失败了
从我的过程生成的脚本。
消息 102,第 15 级,状态 1,第 366 行
“GO”附近的语法不正确。
消息 156,第 15 级,状态 1,第 370 行
关键字“CREATE”附近的语法不正确。
消息 102,第 15 级,状态 1,第 371 行
“GO”附近的语法不正确。
创建表 dbo.[SolutionAssessmentBPF]
(businessprocessflowinstanceid uniqueidentifier NOT NULL、StatusReasonCode int NULL、TimeZoneRuleVersionNumber int NULL、TraversedPath nvarchar (1250) NULL、UTCConversionTimeZoneCode int NULL、TenantId int NOT NULL、OdsCreatedDate 日期时间 NOT NULL DEFAULT GETUTCDATE()、OdsModifiedDate 日期时间 NOT NULL DEFAULT GETUTCDATE() 、OdsStatus tinyint NULL DEFAULT 0 、版本号 bigint DEFAULT -1
, 约束 [PK_SolutionAssessmentBPF] 主键聚集
(
业务流程实例 ID、租户 ID ASC ))
去
创建唯一索引 [UQX_SolutionAssessmentBPF_bpf_incidentid_OdsStatus] ON [dbo].[SolutionAssessmentBPF] ([bpf_incidentid], [OdsStatus])
去
创建非聚集索引 [NCI_SolutionAssessmentBPF_OdsModifiedDate] ON [dbo].[SolutionAssessmentBPF] ([OdsModifiedDate])
GO
从生成的动态 SQL 中删除 GO 语句后,此问题得到修复。请删除 GO 语句和任何与 Windows 格式不兼容的不可打印字符。这应该可以解决此类问题。
I am too facing the same issue, but not sure about what causes it. When copy paste the in query editor, able to execute it.
Thorough procedure only it failing
Scripts generated from my procedure.
Msg 102, Level 15, State 1, Line 366
Incorrect syntax near 'GO'.
Msg 156, Level 15, State 1, Line 370
Incorrect syntax near the keyword 'CREATE'.
Msg 102, Level 15, State 1, Line 371
Incorrect syntax near 'GO'.
CREATE TABLE dbo.[SolutionAssessmentBPF]
( businessprocessflowinstanceid uniqueidentifier NOT NULL , StatusReasonCode int NULL , TimeZoneRuleVersionNumber int NULL , TraversedPath nvarchar (1250) NULL , UTCConversionTimeZoneCode int NULL , TenantId int NOT NULL , OdsCreatedDate datetime NOT NULL DEFAULT GETUTCDATE() , OdsModifiedDate datetime NOT NULL DEFAULT GETUTCDATE() , OdsStatus tinyint NULL DEFAULT 0 , VersionNumber bigint DEFAULT -1
, CONSTRAINT [PK_SolutionAssessmentBPF] PRIMARY KEY CLUSTERED
(
businessprocessflowinstanceid,TenantId ASC ))
GO
CREATE UNIQUE INDEX [UQX_SolutionAssessmentBPF_bpf_incidentid_OdsStatus] ON [dbo].[SolutionAssessmentBPF] ([bpf_incidentid], [OdsStatus])
GO
CREATE NONCLUSTERED INDEX [NCI_SolutionAssessmentBPF_OdsModifiedDate] ON [dbo].[SolutionAssessmentBPF] ([OdsModifiedDate])
GO
This issue is got fixed after removing GO statement from dynamic SQL generated. Please remove GO statement and any non printable character which is not compatible with windows format. That should fix this kind of issues.