Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

SQL Server 2008 R2 Kích thước tối đa nhị phân

Tôi không thể tái tạo kịch bản này. Tôi đã thử những cách sau:

USE tempdb;
GO

CREATE TABLE dbo.blob(col VARBINARY(MAX));

INSERT dbo.blob(col) SELECT NULL;

UPDATE dbo.blob 
  SET col = (SELECT BulkColumn 
    FROM OPENROWSET( BULK 'C:\Folder\File.docx', SINGLE_BLOB) alias
  );

SELECT DATALENGTH(col) FROM dbo.blob;

Kết quả:

--------
39578

Nếu điều này được giới hạn ở 8K thì tôi đoán rằng một trong hai điều sau là đúng:

  1. Cột thực sự là VARBINARY(8000) .

  2. Bạn đang chọn dữ liệu trong Management Studio và phân tích độ dài của dữ liệu được hiển thị ở đó. Điều này được giới hạn ở tối đa 8192 ký tự trong kết quả đối với văn bản, nếu trường hợp này xảy ra, vì vậy hãy sử dụng DATALENGTH() trực tiếp chống lại cột là một cách tiếp cận tốt hơn nhiều.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sử dụng NEWSEQUENTIALID () để tạo HƯỚNG DẪN Tăng dần trong SQL Server

  2. Cập nhật SQL trong tập hợp dữ liệu

  3. Chức năng so với Thủ tục được lưu trữ

  4. Ngày giờ T-SQL được làm tròn thành phút gần nhất và giờ gần nhất với việc sử dụng các hàm

  5. Khôi phục cơ sở dữ liệu SQL Server - Khóa chính không mở