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

SqlDbType ánh xạ gì tới varBinary (max)?

SqlDbType.VarBinary có độ dài -1 là tương đương với VARBINARY (MAX), ít nhất là trên lý thuyết. Nhưng vấn đề phức tạp hơn một chút, vì cũng có một kiểu (không phải giá trị enum), đó là SqlTypes.SqlBytes mà có thể được sử dụng. Và có SqlTypes.SqlFileStream cũng có thể được sử dụng cho VARBINARY(MAX) khi chúng có FILESTREAM thuộc tính.

Nhưng vấn đề là không có enum hoặc kiểu nào trong số này đề cập đến vấn đề thực sự khi làm việc với VARBINARY(MAX) các cột trong ADO.Net:tiêu thụ bộ nhớ. Tất cả các loại này, khi được sử dụng 'out-of-the-box', sẽ tạo ra các bản sao của giá trị được phân bổ dưới dạng một mảng duy nhất trong bộ nhớ, tốt nhất là không hoạt động, nhưng khi nội dung lớn hơn trở nên không thể sử dụng được vì phân bổ không thành công . Tôi có một số bài viết chỉ ra cách thích hợp để xử lý VARBINARY(MAX) các giá trị trong ADO.Net bằng cách sử dụng ngữ nghĩa truyền trực tuyến để tránh tạo các bản sao trong bộ nhớ của toàn bộ nội dung:

  • Tải xuống và tải lên hình ảnh từ SQL Server qua ASP.Net MVC
  • FILESTREAM MVC:Tải xuống và tải lên hình ảnh từ SQL Server


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Quản lý giao dịch đồng thời bằng cách sử dụng khóa trong SQL Server

  2. SQL Server 2012 truy vấn dữ liệu Access 2007 sử dụng lỗi OPENROWSET

  3. Có thể đặt thời gian chờ cho truy vấn SQL trên Microsoft SQL Server không?

  4. Nhiều câu lệnh INSERT so với một câu lệnh INSERT với nhiều GIÁ TRỊ

  5. Cách chèn dòng mới trong nvarchar một cách chính xác