2017-09-20 41 views
0

這裏就是我想要做的事:sp_executesql的:過程需要類型的參數「@statement 'NTEXT/NCHAR/nvarchar的'

EXECUTE sp_executesql 
    'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys', 
    N'@OrganizationSys nvarchar(250)', 
    @OrganizationSys = '805408' 

但我得到這個錯誤:

Procedure expects parameter '@statement' of type 'ntext/nchar/nvarchar'

不確定我做錯了什麼。

+4

'EXEC sys.sp_executesql N'select ...',...,@OrganizationSys = N'805408';' –

回答

4

如錯誤所述,您需要nvarchar而不是varchar。嘗試:

EXECUTE sp_executesql 
    N'select * from AccessOrganizationSettings where OrganizationSys = @OrganizationSys', 
    N'@OrganizationSys nvarchar(250)', 
    @OrganizationSys = N'805408' 

N使得字符串的nvarchar數據類型。

+0

啊好的!我花了幾秒鐘的時間盯着你的答案,看看我的查詢和你的查詢之間的區別。我錯過了第一個N.(我會盡快回答它的答案) –

+2

@CaseyCrookston *所有*'N's重要,不只是第一個。你應該總是爲任何'nvarchar'字符串文字包含'N'前綴。 –

相關問題