我varbinary
在数据库中有一个列。包含十六进制数据的长范围数据。
我substring
用来选择和显示数据。
SELECT TOP 100
CHAR_KEY AS charid,
USER_KEY AS userid,
CONVERT(VARCHAR,substring(char_data, 9, 16)) AS name,
CONVERT(INT,cast(reverse(substring(char_data, 7, 2)) as BINARY(2))) AS level,
CONVERT(INT,substring(char_data, 25, 1)) AS type,
CONVERT(INT, substring(char_data, 261, 1)) AS permission,
guild_data.guild_name
FROM CHAR_DATA0
inner join guild_data
on guild_key =
CONVERT(INT,
cast(reverse(substring(char_data, 33, 4)) as BINARY(4)))
WHERE CONVERT(INT, substring(char_data, 261, 1))=0x00
ORDER BY level DESC
现在我想UPDATE
,有什么想法吗?非常感谢。我是新来的。我试图寻找substring
更新,但没有在网上找到任何工作示例。
谢谢。
- - -编辑 - - -
我试过这个:
UPDATE
CHAR_TDATA0
SET char_data = stuff(cast(char_data as BINARY(2000)), 9, 16, CONVERT(BINARY(16), 'testnamezs'))
WHERE CHAR_KEY=4
但没有运气。有一些语法错误。