Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server &引用;找不到存储过程'ÿþ'&引用;错误_Sql Server_Ssms_Sql Server 2014_Utf 16_Windows 1252 - Fatal编程技术网

Sql server &引用;找不到存储过程'ÿþ'&引用;错误

Sql server &引用;找不到存储过程'ÿþ'&引用;错误,sql-server,ssms,sql-server-2014,utf-16,windows-1252,Sql Server,Ssms,Sql Server 2014,Utf 16,Windows 1252,在从SQL脚本文件读取内容,将其分配给变量,然后执行内容之后,我尝试执行一个查询。然后我得到一个错误,说找不到存储过程“ÿþ”。请帮我理解这个问题。多谢各位 信息: SQL Server 2014 SSMS版本-12.0.4100.1 ÿþ是解释的两个字节的一种方法,即\xFF和\xFE 当您使用不知道或更可能未配置为使用Unicode的工具读取以UTF-16编码保存的文件时,您会看到这两个字母 例如,当您使用Windows记事本编辑文本文件,并在保存时选择“Unicode”作为文件编码时,记事

在从SQL脚本文件读取内容,将其分配给变量,然后执行内容之后,我尝试执行一个查询。然后我得到一个错误,说
找不到存储过程“ÿþ”
。请帮我理解这个问题。多谢各位

信息:

SQL Server 2014

SSMS版本-12.0.4100.1


ÿþ
是解释的两个字节的一种方法,即\xFF和\xFE

当您使用不知道或更可能未配置为使用Unicode的工具读取以UTF-16编码保存的文件时,您会看到这两个字母

例如,当您使用Windows记事本编辑文本文件,并在保存时选择“Unicode”作为文件编码时,记事本将使用UTF-16保存该文件,并在开始处用上述两个字节对其进行标记

如果您用来读取文件的任何东西都不知道该文件是Unicode,那么它将使用计算机的默认字节编码来解码该文本文件

现在,如果默认编码恰巧是,就像您的例子一样,那么您得到的就是
ÿþ
,因为这里\xFF是
ÿ
,而\xFE是
þ


因此,当出现
ÿþ
时,SQL Server认为它必须是存储过程的名称,因为存储过程是您只需提及其名称即可运行的唯一语句。它尽职尽责地报告说,它找不到该名称的过程。

问题是,您的SQL脚本文件编码为UTF-16,而应用程序读取它的部分将其解码为Windows-1252。哦,我明白了。我能做些什么来克服它?谢谢你的解释。现在我明白为什么会这样了。有没有办法跳过这些字符?你绝对不想跳过这些字符。它们很重要。我已经解释了你需要知道的一切,以得出正确的结论。把拼图拼凑起来,并不难。:)关键短语位于两个短划线之间。xD Ok。你真的很有帮助。我会试试你的解决方案……:)