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

Cách tìm đối chiếu trong SQL Server (T-SQL)

Đối chiếu có thể được chỉ định ở cấp máy chủ, cấp cơ sở dữ liệu, cấp cột, cấp biểu thức và cấp định danh. Cần có một phương pháp khác cho mỗi phương thức này.

Đối chiếu cấp độ máy chủ

Dưới đây là cách tìm đối chiếu cấp máy chủ:

SELECT CONVERT (varchar, SERVERPROPERTY('collation')) AS 'Server Collation';

Điều này trả về đối chiếu như sau:

Server Collation
----------------------------
SQL_Latin1_General_CP1_CI_AS


Bạn cũng có thể sử dụng sp_helpsort thủ tục được lưu trữ để trả về đối chiếu mặc định cho máy chủ:

EXECUTE sp_helpsort;

Điều này trả về đối chiếu như sau:

Server default collation
----------------------------
Latin1-General, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive for Unicode Data, SQL Server Sort Order 52 on Code Page 1252 for non-Unicode Data

Đối chiếu cấp độ cơ sở dữ liệu

Chạy truy vấn sau để trả về đối chiếu của một cơ sở dữ liệu cụ thể. WHERE mệnh đề cho phép bạn thu hẹp kết quả xuống / cơ sở dữ liệu mà bạn quan tâm:

SELECT 
    name, 
    collation_name 
FROM sys.databases
WHERE name = 'Music';

Điều này dẫn đến một cái gì đó như thế này:

name   collation_name              
-----  ----------------------------
Music  SQL_Latin1_General_CP1_CI_AS

Trong trường hợp này, chúng tôi đã chỉ định cơ sở dữ liệu có tên Music .

Bạn cũng có thể sử dụng DATABASEPROPERTYEX() hàm trả về đối chiếu mặc định cho cơ sở dữ liệu:

SELECT DATABASEPROPERTYEX('Music', 'Collation') AS Collation;

Đối chiếu mức cột

Đối chiếu cũng có thể được chỉ định ở cấp cột. Để tìm hiểu đối chiếu mà một cột cụ thể sử dụng, hãy chạy truy vấn đối với sys.columns . Như thế này:

SELECT 
    name, 
    collation_name 
FROM sys.columns 
WHERE name = N'ArtistName';

Điều này dẫn đến một cái gì đó như thế này:

name   collation_name              
----------  ----------------------------
ArtistName  SQL_Latin1_General_CP1_CI_AS

Đối chiếu cấp độ biểu thức và mã định danh

Đối chiếu có thể được áp dụng cho biểu thức chuỗi ký tự để áp dụng ghép đối chiếu. Ví dụ:bạn có thể sử dụng COLLATE mệnh đề trong SELECT câu lệnh để chỉ định đối chiếu sẽ được sử dụng. Như thế này:

USE Music;
SELECT ArtistId, ArtistName
FROM Artists
ORDER BY ArtistName COLLATE Latin1_General_CI_AI;

Đối chiếu đó sử dụng CI để phân biệt chữ hoa chữ thường và AI vì không nhạy cảm.

Chúng tôi có thể thay đổi điều đó thành CS phân biệt chữ hoa chữ thường và AS đối với phân biệt trọng âm và kết quả truy vấn có thể được sắp xếp khác nhau (tùy thuộc vào dữ liệu):

USE Music;
SELECT ArtistId, ArtistName
FROM Artists
ORDER BY ArtistName COLLATE Latin1_General_CS_AS;

Vì vậy, điều này cho phép bạn ghi đè đối chiếu được áp dụng ở cấp độ cơ sở dữ liệu hoặc cột khi chạy truy vấn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mệnh đề WHERE so với ON khi sử dụng JOIN

  2. Mẹo sử dụng SQL Server với Salesforce

  3. Nội tuyến UDF vô hướng trong SQL Server 2019

  4. Oracle tương đương với hàm IsNull () của SQL Server là gì?

  5. Cách thêm số dòng trong SQL Server Management Studio (SSMS) - Hướng dẫn SQL Server / TSQL Phần 11