SQL Server中.NET Framework Byte[]类型列手动输入数据格式咨询
解决SQL Server中Byte[]对应列的手动输入格式问题
嘿,这个问题我之前帮同事处理过!在SQL Server里,对应.NET Framework Byte[]的列通常是varbinary(或固定长度的binary)类型,手动输入的时候不能直接写数组格式(比如[1,2,3]),得用SQL Server识别的二进制数据格式,具体操作分两种场景:
在SSMS的表数据编辑界面手动输入:
直接在目标单元格里输入0x开头的十六进制字符串就行。比如你要输入字节数组{0x01, 0x02, 0x03},就填0x010203;如果是空的字节数组,输入0x即可(要是列允许为空,也可以填NULL)。用SQL语句插入/更新数据:
写法和上面一致,把二进制数据以0x前缀的十六进制串形式传入,示例代码如下:-- 插入示例 INSERT INTO YourTable (ByteColumn) VALUES (0x00FFAABB); -- 对应.NET Byte[] {0x00, 0xFF, 0xAA, 0xBB} -- 更新示例 UPDATE YourTable SET ByteColumn = 0x123456 WHERE Id = 1;
你之前遇到的报错,就是因为输入了SQL Server无法识别的格式(比如普通数组语法或字符串),换成0x前缀的十六进制串就能正常识别啦。
内容的提问来源于stack exchange,提问作者eDonkey




