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

SQL Server 2008 và so sánh ký tự Unicode

Được rồi, vì vậy, việc đào sâu hơn một chút cho thấy điều này gần như chắc chắn là do ký tự mới hơn, vì điều này cũng hoạt động với các bản đối chiếu latin tương đương của máy chủ sql 2008, nhưng không hoạt động với các phiên bản cũ hơn, tức là hoạt động với Latin1_General_100_CI_AS , nhưng không phải với Latin1_General_CI_AS . Để có danh sách đầy đủ các đối chiếu so sánh chính xác các chuỗi này, tôi đã sử dụng:

IF OBJECT_ID('Tempdb..#T') IS NOT NULL
    DROP TABLE #T;
IF OBJECT_ID('Tempdb..#V') IS NOT NULL
    DROP TABLE #V;

CREATE TABLE #V (A NVARCHAR(50), B NVARCHAR(50));
INSERT #V (A, B) VALUES (N'it᧠', N'it');

CREATE TABLE #T (Collation VARCHAR(500), Match BIT);

DECLARE @SQL NVARCHAR(MAX) = (SELECT N'INSERT #T (Collation, Match) 
                                        SELECT ''' + Name + ''', CASE WHEN A = B COLLATE ' + name + ' THEN 1 ELSE 0 END
                                        FROM    #V;'
                                FROM sys.fn_helpcollations()
                                FOR XML PATH(''), TYPE
                            ).value('.', 'NVARCHAR(MAX)');

EXECUTE sp_executesql @SQL;

SELECT  *
FROM    #T
WHERE   Match = 0;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Thuộc tính VB6 ADODB.Recordset RecordCount luôn trả về -1

  2. Tại sao việc sử dụng ký tự Dấu gạch dưới trong bộ lọc LIKE lại cho tôi tất cả kết quả?

  3. Cách khôi phục cơ sở dữ liệu SQL Server thông qua mã C #

  4. Có cách nào dễ dàng để làm cho EntityFramework sử dụng các giá trị mặc định của SQL không?

  5. Kiểm tra tình trạng máy chủ SQL chủ động, Phần 2:Bảo trì