对于数据库中代码列中的某些值,无法将isdeleted列设置为0

时间:2019-06-19 16:28:09

标签: sql-server

尝试更新具有varbinary列的表。我有一列称为code的列,其值需要将isdeleted列设置为0,因此恰好是varbinary。我需要将代码列中的许多值删除设置为0。

我尝试了一个update语句,将代码处于某些值的代码列的isdeleted设置为0。

Update dbo.code
set isdeleted = '0' 
where code in ('1', '2',  '3')

期望将这些值设置为0,但是会收到错误消息

  

第1级第3行第16条状态257消息   不允许从数据类型varchar隐式转换为varbinary。使用CONVERT函数运行此查询

1 个答案:

答案 0 :(得分:0)

来自Google :VARBINARY类型类似于VARCHAR类型,但是存储二进制字节字符串而不是非二进制字符串。 M表示最大列长度(以字节为单位)。它不包含任何字符集,并且比较和排序基于字节的数值。

您可以尝试-

Update dbo.code
set isdeleted = 0 -- Remove single quotes from the Value 
where code in ('1', '2',  '3')

我对您的要求还有其他意见/建议。正如您提到的那样,您想将'0'推送到isdeleted列中,我想您正在寻找在该列中存储1或0来定义行(可能是删除)的情况。如果我猜对了,我的建议是使用BIT数据类型列并将1或0存储到该列。