0

私は列を持つテーブルを持っています:

ID int,
FirstName nvarchar(50),
Phone varchar(50),
Email varbinary(50)  -- (use varbinary for unicode)

このテーブルで電話とメールを更新するストアドプロシージャがあります。これは私の手順の入力パラメータです

@id int,
@Phone varchar(50),
@Email varchar(50)

更新時に電子メールを varbinary に変換する方法 このように更新すると:

UPDATE myProcedure
SET [Phone] = @Phone,
    [Email] = @Email
WHERE [ID] = @ID 

エラーがあります:Implicit conversion from data type varchar to varbinary is not allowed. Use the CONVERT function to run this query.

4

1 に答える 1

2

メールを として保存するのはなぜvarbinaryですか? これをNVARCHARに変更すると、Unicode がうまくサポートされます。

テーブル構造は次のようになります。

CREATE TABLE YourTable
(
   ID int,
   FirstName nvarchar(50),
   Phone varchar(50),
   Email NVARCHAR(50)
)

変換する:

DECLARE @ConvertedEmail VARBINARY(50)
SET @ConvertedEmail = CONVERT(varbinary(1000), @Email, 2)

その後、次を使用してテーブルを更新できます@ConvertedEmail

于 2013-06-17T10:18:18.020 に答える