如何在 varbinary(max) 字段中插入 0

20

我正在尝试向varbinary max中插入0值以测试一些结果。 我尝试将''强制转换为二进制,尝试将0输入其中,但它会将其转换为0x00。

有没有一种方法可以只输入0来表示特定的值?


0x00是0的十六进制表示。 - Matt Grande
@MattGrande 我认为OP的意思是一个空的字节序列。 - Matthew
@MattGrande - 有没有办法只获取0? - NoviceMe
这只是0而已。如果你说SELECT * FROM MyTable WHERE MyBinaryField = 0,你的行将会出现。0x00只是它的显示方式。 - Matt Grande
2个回答

47

如果你想表示一个空的字节序列,将它的值设置为0x

INSERT INTO MyTable(MyBinary) VALUES (0x)
例如:
DECLARE @myTable TABLE (
    binaryField VARBINARY(MAX) NOT NULL
)

INSERT INTO @myTable(binaryField) VALUES(0x) -- 0 bytes
INSERT INTO @myTable(binaryField) VALUES(0x11223344) -- 4 bytes

SELECT *, len(binaryField) FROM @myTable

它输入的是0x,而不仅仅是0。 - NoviceMe
6
我认为问题在于你尝试如何表示列中的数据,而不是数据本身的存储方式。 0x 是表示空字节序列的方式。 - Matthew

0

请尝试以下方法:

DECLARE @binaryField VARBINARY(MAX);
SET @binaryField = 0x00000000;
SELECT CONVERT(INT, @binaryField)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接