如何将varbinary转换为varchar sql server

时间:2013-06-17 10:15:36

标签: sql sql-server tsql

我有列表:

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.

1 个答案:

答案 0 :(得分: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

更新您的表格