"'附近的语法不正确

Jos*_*ank 32 sql sql-server ssms

我正在尝试在SQL Server Management Studio中运行以下相当简单的查询:

SELECT TOP 1000 * 
FROM 
    master.sys.procedures as procs
left join 
    master.sys.parameters as params on procs.object_id = params.object_id
Run Code Online (Sandbox Code Playgroud)

这似乎完全正确,但我不断收到以下错误:

消息102,级别15,状态1,行6
''附近的语法不正确.

如果我取出连接并且只做一个简单的选择,它就可以工作:

SELECT TOP 1000 *
FROM 
    master.sys.procedures as procs
Run Code Online (Sandbox Code Playgroud)

但我需要加入工作.我在这个查询中甚至没有字符串'',所以我无法弄清楚它不喜欢什么.

Pan*_*vos 74

当您从网页或电子邮件中复制代码并且文本包含不可打印的字符(如单个CR或LF和不间断空格)时,可能会出现此类意外问题.

  • 就是这样.我去手动删除了所有空格并添加了空格,现在它可以工作了. (3认同)

MAX*_*AXE 18

Panagiotis Kanavos 是对的,有时复制和粘贴 T-SQL 会使出现不需要的字符......

终于找到了一种简单快捷的方法(只需要Notepad++)来检测哪个字符错误,而无需手动重写整个语句:无需将任何文件保存到磁盘。

在 Notepad++ 中,速度非常快:

  • 点击“新建文件”
  • 在“编码”菜单下检查:该值应为“以 UTF-8 编码”;如果不是,请设置它
  • 粘贴你的文字 在此处输入图片说明
  • 从“编码”菜单中,现在单击“以 ANSI 编码”并再次检查您的文本 在此处输入图片说明

你应该很容易找到错误的字符