sql-server - 无法将数据库中代码列中的某些值的 isdeleted 列设置为 0
问题描述
尝试更新具有varbinary
列的表。我有一个名为 code 的列,它的值需要将该isdeleted
列设置为 0,而这恰好是varbinary
. 对于代码列中的许多值,我需要删除设置为 0。
我尝试了一个update
语句,将isdeleted
代码在某些值中的代码列设置为 0。
Update dbo.code
set isdeleted = '0'
where code in ('1', '2', '3')
期望这些值设置为 0 但是我得到一个错误
消息 257,级别 16,状态 3,第 1 行
不允许从数据类型 varchar 到 varbinary 的隐式转换。使用 CONVERT 函数运行此查询
解决方案
来自 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 存储到该列。
推荐阅读
- html - HTML 到 PDF:元素重叠固定页脚
- php - 使用 WooCommerce PDF 发票和装箱单通过 PHP 生成和获取发票 PDF
- python - 根据另一个时间戳值的月份,对列表元素的值进行分组和求和
- php - 中断 if 语句并继续循环
- java - PUTMAPPING JAVA SPRING BOOT MONGODB REST API - 更新不起作用但创建一个新条目
- java - apache tika api的BodyContentHandler中writelimit的意义?
- ios - 我想更改 handleGesture func 中的 squareLabel 值,但我真的不知道如何
- arrays - 如何在 React 的 map 中使用 for 循环
- android - 如何减少定期工作请求的最小间隔?
- android - FireMonkey:Android 上缺少抗锯齿和抖动效果