這是我見過的最殘酷的事情。什麼可能導致SSMS無法正確解析SQL?
我從一個使用SYSNAME
作爲參數類型的模板創建了一個proc。從參數中獲取名稱的proc的所有部分都是拋出錯誤。下面是一個示例:
IF EXISTS(select 1 from sysobjects where name=N'dbo.ms_lst_partner_break_types' and xtype='p')
BEGIN
PRINT 'DROP PROCEDURE dbo.ms_lst_partner_break_types'
DROP PROCEDURE dbo.ms_lst_partner_break_types
END
以下是錯誤:
Msg 102, Level 15, State 1, Line 4 Incorrect syntax near '_partner_break_types'.
最奇怪的是,當我雙擊dbo.ms_lst_partner_break_types
SSMS凸顯要麼ms_lst
或_partner_break_types
不同的地方我點擊。將腳本複製到Textpad並返回,同樣的問題。刪除_partner_break_types
並突然它有效。
有沒有人有任何想法是什麼給?
[我見過類似的問題](http://stackoverflow.com/questions/5276138/weird-behaviour-of-management-studio/5276295#5276295)當字符0結束在文本中,但也打破了複製和粘貼。將代碼粘貼到這個問題中沒有問題? –
是否有人可能會與您的批分隔符混淆?工具/選項/查詢執行/ SQL Server /常規。 –
作爲一個方面說明,'sysobjects'中的'name'不會包含名稱的'dbo.'模式部分,所以你永遠不會找到'name = N'dbo.ms_lst_partner_break_types'' –