fis*_*g3r 3 sql sql-server varbinary sqldatatypes
据我所知,您可以“手动”定义的最大值是8000-> varbinary(8000)据我所知,是指8000 bytes-> 7,8125 KByte。
可以将max设置为2 MB吗?有点问题varbinary(2097152),还是应该将其设置为varbinary(max)并通过我的上载/ 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);
Run Code Online (Sandbox Code Playgroud)
然后,当尝试插入大于2 MB的内容时:
DECLARE @B VARCHAR(MAX) = '|';
INSERT dbo.T (VarB)
SELECT CONVERT(VARBINARY(MAX), REPLICATE(@B, 2097153));
Run Code Online (Sandbox Code Playgroud)
您得到一个错误:
INSERT语句与CHECK约束“ CHK_T_Column__2MB”冲突。数据库“ TestDB”的表“ dbo.T”的列“ VarB”中发生了冲突。
| 归档时间: |
|
| 查看次数: |
4275 次 |
| 最近记录: |