3

SQLデータテーブルStudetnMasterがFirstName nvarchar(100)あり、データ入力グジャラート語(Unicode Chracters)が含まれています

サンプル:

   StudentId   FirstName
     1           ઘનશ્યામ
     2           જીગર   

今、私は検索のために次のクエリを持っています:

Select * 
from StudetnMaster 
where FirstName like N'" + textBox1.Text.Trim() + "%' 

正常に動作していますが、ストアド プロシージャでは次のようにパラメーターを渡す必要がありますFirstName

ALTER PROCEDURE dbo.StoredProcedure1
        @FirstName nvarchar(100)
AS
    select * 
    from StudentNew 
    where FirstName like N@FirstName+'%' 

しかし、次のようなエラーがスローされます。

無効な列名 N@FirstName

Unicode テキストを使用しないと検索できない'N' ため、SP でパラメーターを使用するにはどうすればよいですか?N'

上記のインラインクエリでは結果が得られましたが、ストアドプロシージャではエラーが発生したため'N'、SPでどのように使用できますか?

SPでユニコード文字を検索するための他の解決策はありますか?

ありがとう

4

1 に答える 1

1

コメントに書かれているように、パラメータに N を追加する必要はありません。

パラメータを nvarchar として定義すると、シンボルごとに 2 バイトを意味します (N'string' と書くと、N が表すもの)。

必要に応じて、そこに照合を追加できます。

select * from StudentNew
where FirstName like @FirstName+'%' Collate YourCollationName
于 2012-10-31T12:16:04.220 に答える