sql文中 对二进制字段进行位运算
数据库中执行二进制字段的或运算
CONVERT(BINARY(16),TD_TM_PRO_STS,2) | 3458764513820540928
(3458764513820540928 是0x00000300000000000000000000000000的十进制数)
只是想把TD_TM_PRO_STS字段的第三个字节更新成03其他不变,sql文中“|”运算的右操作数
只能为 ‘int’、‘smallint’ 或 ‘tinyint’型,3458764513820540928超出范围。
左右操作数都是 BINARY是非法的。
有没有什么好的办法。
------解决方案--------------------select sys.fn_MSorbitmaps(0xAABB00CC, 0x000003) --0xAABB03CC
------解决方案--------------------我用sql promot搞出来代码了。
create function sys.fn_MSorbitmaps (@bm1 varbinary(128), @bm2 varbinary(128))
returns varbinary(128)
as
begin
declare @bm3 varbinary(128)
exec sys.xp_ORbitmap @bm1,@bm2,@bm3 output
return @bm3
end
GO