2014-03-29 17 views
1

我正在使用存儲過程從MSSQL數據庫中刪除基於使用nvarchar(100)和波斯語的列的行。 當我要插入此列,我用的是字N記錄之前,能夠執行插入操作:無法使用存儲過程從右到左刪除語言列

insert into materialPrice values( N'persian word',1000,100,0,0,0,0) 

的問題是,當我想刪除相同的記錄,存儲過程不工作:

create proc spRemoveMaterial 
@materialName nvarchar(100) 
as 
begin 
delete from materialPrice where materialName = @materialName 
end 

我試過在@materialName之前使用N,但它returend語法錯誤。這怎麼可能呢?

+0

你之前字面填充@materialName與N」? – Jayvee

回答

0

的問題是與數據庫進行整理,下面的代碼已經修好了:

ALTER DATABASE MaterialDB COLLATE Persian_100_CI_AS

0

N是一個標記,它使字符串文字以Unicode表示 - 意味着您要插入到Unicode列中。

您應該能夠將變量轉換爲與cast的Unicode。喜歡的東西:

cast(@materialName as nvarchar(100)) 

正確類型(或ncharnvarchar)和長度,以匹配該柱。

+0

我做了改變它不工作 – Iatrochemist

相關問題