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 回答