我有列表:
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.
答案 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