据我所知,您可以“手动”定义的最大值是8000
-> varbinary(8000)
据我所知,这意味着8000 bytes
-> 7,8125 KByte
.
是否可以将 max 设置为2 MB
?类似的东西varbinary(2097152)
,或者我应该将其设置为varbinary(max)
并通过我的 upload/sql 插入脚本检查文件大小?
你可以使用CHECK CONSTRAINT
确保大小低于 2MB:
CREATE TABLE dbo.T
(
ID INT IDENTITY,
VarB VARBINARY(MAX)
);
ALTER TABLE dbo.T ADD CONSTRAINT CHK_T_VarB__2MB CHECK (DATALENGTH(VarB) <= 2097152);
然后当尝试插入大于 2 MB 的内容时:
DECLARE @B VARCHAR(MAX) = '|';
INSERT dbo.T (VarB)
SELECT CONVERT(VARBINARY(MAX), REPLICATE(@B, 2097153));
你会得到一个错误:
INSERT 语句与 CHECK 约束“CHK_T_Column__2MB”冲突。冲突发生在数据库“TestDB”、表“dbo.T”、列“VarB”中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)