1
在我的where子句中,如果我寫AND acts.displayname = N'Onaylanmış Rapor'
我得到我想要的結果。但爲了參數化查詢,我發現NVARCHAR(MAX)參數仍然返回沒有特殊字符和全部的VARCHAR結果。在sql服務器參數中使用N前綴
我的問題的樣本是這樣的;
DECLARE @displayname NVARCHAR(MAX)
SET @displayname = 'Onaylanmış Rapor'
select @displayname as param, CONVERT(NVARCHAR(MAX),@displayname) as nvarconvert, CAST(@displayname as NVARCHAR(MAX)) as nvarcharcast
+------------------+------------------+------------------+
| param | nvarconvert | nvarcharcast |
+------------------+------------------+------------------+
| Onaylanmis Rapor | Onaylanmis Rapor | Onaylanmis Rapor |
+------------------+------------------+------------------+
雖然我仍然需要參數'Onaylanmış Rapor
'。
我試着將參數值轉換並轉換成nvarchar(max),但它也不起作用。
有沒有其他辦法?
你可以強制轉換和轉換所有你喜歡的,但*輸入文字*需要能夠包含字符。 'N'OnaylanmışRapor''是一個Unicode文字和作品,'OnaylanmışRapor''沒有。變量已經分配後,轉換什麼都不做。如果您的參數儘管是「N(VAR)CHAR」,仍然無法運行,您需要調查發出查詢的客戶端代碼。 –
SET @displayname =N'OnaylanmışRapor' – GuidoG