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

Lỗi khác biệt với trường hình ảnh

Các kiểu dữ liệu hình ảnh trong câu lệnh SELECT có chứa mệnh đề DISTINCT. Tùy thuộc vào phiên bản SQL Server đang được sử dụng, có một số cách để khắc phục hạn chế này.

Đối với SQL Server 2000, cột TEXT có thể được chuyển đổi thành kiểu dữ liệu VARCHAR, cột NTEXT có thể được chuyển đổi thành kiểu dữ liệu NVARCHAR trong khi kiểu dữ liệu IMAGE có thể được chuyển đổi thành kiểu dữ liệu VARBINARY. Các câu lệnh SELECT trước đó có chứa mệnh đề DISTINCT có thể được viết lại như sau và tránh thông báo lỗi:

CHỌN DISTINCT [BookTitle], CAST ([BookSummary] AS NVARCHAR (4000)) AS [BookSummary] FROM [dbo]. [Book]

CHỌN DISTINCT [BookTitle], CAST ([BookImage] AS VARBINARY (8000)) AS [BookImage] FROM [dbo]. [Book] Đối với SQL Server 2005 và SQL Server 2008 (và mới hơn), thay vì giới hạn NVARCHAR ở 4000 ký tự hoặc VARCHAR hoặc VARBINARY đến 8000 ký tự, từ định nghĩa MAX có thể được sử dụng ở vị trí của nó, như có thể thấy trong các câu lệnh SELECT sau:

CHỌN DISTINCT [BookTitle], CAST ([BookSummary] AS NVARCHAR (MAX)) AS [BookSummary] FROM [dbo]. [Book]

CHỌN DISTINCT [BookTitle], CAST ([BookImage] AS VARBINARY (MAX)) AS [BookImage] FROM [dbo]. [Book] Nếu sử dụng SQL Server 2005 hoặc SQL Server 2008 (trở lên), một cách khác để khắc phục hạn chế này và thông báo lỗi này mà không sử dụng hàm CAST hoặc CONVERT để chuyển đổi các kiểu dữ liệu văn bản, ntext và hình ảnh thành varchar, nvarchar và varbinary, tương ứng là thay đổi kiểu dữ liệu của các cột thành VARCHAR (MAX), NVARCHAR (MAX) và VARBINARY (TỐI ĐA). Các kiểu dữ liệu TEXT, NTEXT và IMAGE sẽ bị xóa trong phiên bản Microsoft SQL Server trong tương lai và nên tránh sử dụng các kiểu dữ liệu này.

Tham khảo: http://www.sql-server-helper .com / error-messages / msg-421.aspx




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiệu suất truy vấn SQL Server - Tìm kiếm chỉ mục theo cụm

  2. Bạn sử dụng kích thước nào cho varchar (MAX) trong khai báo tham số của mình?

  3. trong máy chủ sql cách lấy giá trị cột với ` ` riêng biệt

  4. Sao chép một tập hợp con dữ liệu đã lọc:Hợp nhất hay Sao chép giao dịch?

  5. System.ArgumentException:Tham số kiểu bảng phải có tên kiểu hợp lệ