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

Kiểu dữ liệu SYSNAME trong SQL Server là gì?

sysname là một kiểu dữ liệu được xây dựng trong giới hạn 128 ký tự Unicode, IIRC, được sử dụng chủ yếu để lưu tên đối tượng khi tạo tập lệnh. Giá trị của nó không được NULL

Về cơ bản, nó giống như cách sử dụng nvarchar(128) NOT NULL

CHỈNH SỬA

Như đã đề cập bởi @Jim trong phần nhận xét, tôi không nghĩ rằng thực sự có trường hợp kinh doanh mà bạn sẽ sử dụng sysname một cách trung thực. Nó chủ yếu được Microsoft sử dụng khi xây dựng sys nội bộ bảng và các thủ tục được lưu trữ, v.v. trong SQL Server.

Ví dụ:bằng cách thực thi Exec sp_help 'sys.tables' bạn sẽ thấy rằng cột name được định nghĩa là sysname điều này là do giá trị của nó thực sự là một đối tượng trong chính nó (một bảng)

Tôi sẽ không lo lắng quá nhiều về điều đó.

Cũng cần lưu ý rằng đối với những người vẫn đang sử dụng SQL Server 6.5 trở xuống (vẫn còn người sử dụng nó chứ?), Loại sysname được tích hợp sẵn tương đương với varchar(30)

Tài liệu

sysname được xác định với tài liệu cho ncharnvarchar , trong phần nhận xét:

sysname là kiểu dữ liệu do người dùng xác định do hệ thống cung cấp có chức năng tương đương với nvarchar (128) , ngoại trừ việc nó không thể nullable. sysname được sử dụng để tham chiếu tên đối tượng cơ sở dữ liệu.

Để làm rõ các nhận xét ở trên, theo mặc định sysname được định nghĩa là NOT NULL chắc chắn có thể xác định nó là nullable. Cũng cần lưu ý rằng định nghĩa chính xác có thể khác nhau giữa các phiên bản của SQL Server.

Sử dụng các loại dữ liệu đặc biệt

Tên hệ thống kiểu dữ liệu được sử dụng cho các cột bảng, biến và các tham số quy trình được lưu trữ để lưu tên đối tượng. Định nghĩa chính xác của sysname có liên quan đến các quy tắc cho số nhận dạng. Do đó, nó có thể thay đổi giữa các phiên bản của SQL Server. sysname về mặt chức năng giống như nvarchar (128) ngoại trừ điều đó, theo mặc định, sysname KHÔNG ĐẦY ĐỦ. Các phiên bản SQL Server khác, sysname được định nghĩa là varchar (30).

Một số thông tin khác về sysname cho phép hoặc không cho phép NULL giá trị có thể được tìm thấy tại đây https://stackoverflow.com/a/52290792/300863

Chỉ vì nó là mặc định (không phải là NULL) không đảm bảo rằng nó sẽ như vậy!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Câu lệnh SQL UPDATE để chuyển hai giá trị thành hai hàng

  2. OPTION (RECOMPILE) luôn nhanh hơn; Tại sao?

  3. Làm thế nào để sử dụng một biến cho tên cơ sở dữ liệu trong T-SQL?

  4. Ưu điểm và nhược điểm của việc triển khai môi trường đám mây kết hợp

  5. Thêm cột vào bảng hiện có trong cơ sở dữ liệu SQL Server