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

11 cách lấy khóa chính trong SQL Server (ví dụ T-SQL)

Thường có nhiều cách để làm điều tương tự (hoặc tương tự) trong SQL Server. Truy xuất tất cả các khóa chính từ cơ sở dữ liệu (hoặc thậm chí chỉ khóa chính cho một bảng nhất định) là một trường hợp điển hình.

Bài viết này trình bày mười một cách tiếp cận khác nhau để truy xuất thông tin khóa chính trong SQL Server.

Một số trong số này sẽ hữu ích hơn những cái khác, tùy thuộc vào tình huống chính xác của bạn.

Ví dụ 1 - Thủ tục lưu trữ hệ thống sp_pkeys

Nếu bạn chỉ muốn khóa chính cho một bảng nhất định, thì sp_pkeys thủ tục lưu trữ hệ thống có lẽ là cách nhanh nhất và dễ dàng nhất để thực hiện. Để thực hiện việc này, chỉ cần chuyển tên bảng vào thủ tục.

Như thế này:

 EXEC sp_pkeys Artists; 

Kết quả (sử dụng đầu ra dọc):

 TABLE_QUALIFIER | MusicTABLE_OWNER | dboTABLE_NAME | Nghệ sĩCOLUMN_NAME | Nghệ sĩIdKEY_SEQ | 1PK_NAME | PK__Artists__25706B50FCD918B1 

Trong trường hợp này, tôi đã yêu cầu khóa chính từ Artists bàn. Nó trả về tên khóa chính ( PK__Artists__25706B50FCD918B1 ), tên cơ sở dữ liệu ( Âm nhạc ), tên bảng, tên cột ( ArtistId ), cùng với các thông tin khác.

Ngoài ra, tôi có thể đã chỉ định rõ ràng tất cả các đối số để nhận được cùng một kết quả:

 EXEC sp_pkeys @table_name =Nghệ sĩ, @table_owner =dbo, @table_qualifier =Music; 

Ví dụ 2 - Chế độ xem Hệ thống KEY_COLUMN_USAGE

INFORMATION_SCHEMA.KEY_COLUMN_USAGE chế độ xem hệ thống trả về một hàng cho mỗi cột được giới hạn như một khóa trong cơ sở dữ liệu hiện tại. Do đó, bạn cũng sẽ nhận được các khóa ngoài được trả lại với chế độ xem này.

 CHỌN TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE; 

Kết quả:

 + -------------- + --------------- + --------------- ---------------- + | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME || -------------- + --------------- + ---------------- --------------- || Album | ArtistId | FK_Albums_Artists || Album | Thể loại | FK_Albums_Genres || Album | AlbumId | PK__Albums__97B4BE379FC780BD || Nghệ sĩ | ArtistId | PK__Artists__25706B50FCD918B1 || Thể loại | Thể loại | PK__Genres__0385057E88BB96F8 | + -------------- + --------------- + ---------------- --------------- + 

Chúng ta có thể thấy rằng điều này trả về các ràng buộc từ tất cả các bảng. Chúng tôi cũng có thể thêm một WHERE để thu hẹp kết quả vào một bảng cụ thể.

 SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE TABLE_NAME ='Nghệ sĩ'; 

Kết quả:

 + -------------- + --------------- + --------------- ---------------- + | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME || -------------- + --------------- + ---------------- --------------- || Nghệ sĩ | ArtistId | PK__Artists__25706B50FCD918B1 | + -------------- + --------------- + ---------------- --------------- + 

Trong những ví dụ này, tôi đã thu hẹp kết quả chỉ thành những cột của chế độ xem mà tôi quan tâm, nhưng bạn cũng có thể sử dụng dấu hoa thị (* ) ký tự đại diện để trả về tất cả các cột.

 CHỌN * TỪ INFORMATION_SCHEMA.KEY_COLUMN_USAGEWHERE TABLE_NAME ='Nghệ sĩ'; 

Kết quả (sử dụng đầu ra dọc):

 CONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artists__25706B50FCD918B1TABLE_CATALOG | MusicTABLE_SCHEMA | dboTABLE_NAME | Nghệ sĩCOLUMN_NAME | Nghệ sĩIdORDINAL_POSITION | 1 

Ví dụ 3 - Chế độ xem Hệ thống CONSTRAINT_COLUMN_USAGE

Điều này tương tự với ví dụ trước. INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE chế độ xem hệ thống trả về một hàng cho mỗi cột trong cơ sở dữ liệu hiện tại có một ràng buộc được xác định trên cột. Như với INFORMATION_SCHEMA.KEY_COLUMN_USAGE bạn cũng sẽ nhận được các khóa nước ngoài được trả lại với chế độ xem này. Tuy nhiên, INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE không chỉ giới hạn ở các ràng buộc chính.

 CHỌN TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE; 

Kết quả:

 + -------------- + --------------- + --------------- ---------------- + | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME || -------------- + --------------- + ---------------- --------------- || Album | ArtistId | FK_Albums_Artists || Album | Thể loại | FK_Albums_Genres || Album | AlbumId | PK__Albums__97B4BE379FC780BD || Nghệ sĩ | ArtistId | PK__Artists__25706B50FCD918B1 || Thể loại | Thể loại | PK__Genres__0385057E88BB96F8 | + -------------- + --------------- + ---------------- --------------- + 

Bạn có thể sử dụng WHERE mệnh đề chỉ trả về một bảng hoặc cột cụ thể:

 SELECT TABLE_NAME, COLUMN_NAME, CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGEWHERE COLUMN_NAME ='ArtistId'; 

Kết quả:

 + -------------- + --------------- + --------------- ---------------- + | TABLE_NAME | COLUMN_NAME | CONSTRAINT_NAME || -------------- + --------------- + ---------------- --------------- || Album | ArtistId | FK_Albums_Artists || Nghệ sĩ | ArtistId | PK__Artists__25706B50FCD918B1 | + -------------- + --------------- + ---------------- --------------- + 

Trong trường hợp này, tôi đã chỉ định một tên cột, vì vậy nó trả về tất cả các ràng buộc trên các cột có tên đó. Hóa ra, cơ sở dữ liệu sử dụng cùng một tên cột trong hai bảng khác nhau. Một có ràng buộc khóa ngoại, khóa còn lại là khóa chính. Do đó, cả hai hàng đều được trả về.

Một lần nữa, bạn có thể sử dụng dấu hoa thị (* ) ký tự đại diện để trả về tất cả các cột.

 CHỌN * TỪ INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGEWHERE TABLE_NAME ='Nghệ sĩ'; 

Kết quả (sử dụng đầu ra dọc):

 TABLE_CATALOG | MusicTABLE_SCHEMA | dboTABLE_NAME | Nghệ sĩCOLUMN_NAME | ArtistIdCONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artists__25706B50FCD918B1 

Trong ví dụ này, tôi giới hạn đầu ra chỉ là các ràng buộc trên một bảng cụ thể.

Ví dụ 4 - Chế độ xem Hệ thống CONSTRAINT_TABLE_USAGE

INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE chế độ xem hệ thống trả về một hàng cho mỗi bảng trong cơ sở dữ liệu hiện tại có một ràng buộc được xác định trên bảng.

 CHỌN TABLE_NAME, CONSTRAINT_NAME TỪ INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE; 

Kết quả:

 + -------------- + ------------------------------- + | TABLE_NAME | CONSTRAINT_NAME || -------------- + ------------------------------- | | Nghệ sĩ | PK__Artists__25706B50FCD918B1 || Thể loại | PK__Genres__0385057E88BB96F8 || Album | PK__Albums__97B4BE379FC780BD || Album | FK_Albums_Artists || Album | FK_Albums_Genres | + -------------- + ------------------------------- + 

Chế độ xem này không trả về / các tên cột mà các ràng buộc được sử dụng, vì vậy, nó có thể không hữu ích cho bạn, tùy thuộc vào yêu cầu của bạn.

Dưới đây là một ví dụ hiển thị tất cả dữ liệu được trả về bởi chế độ xem này cho Thể loại bảng:

 CHỌN * TỪ INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGEWHERE TABLE_NAME ='Thể loại'; 

Kết quả:

 TABLE_CATALOG | MusicTABLE_SCHEMA | dboTABLE_NAME | Thể loạiCONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Genres__0385057E88BB96F8 

Ví dụ 5 - Chế độ xem Hệ thống TABLE_CONSTRAINTS

INFORMATION_SCHEMA.TABLE_CONSTRAINTS chế độ xem hệ thống trả về một hàng cho mỗi ràng buộc bảng trong cơ sở dữ liệu hiện tại.

 CHỌN TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPEFROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS; 

Kết quả:

 + -------------- + ------------------------------- + ------------------- + | TABLE_NAME | CONSTRAINT_NAME | CONSTRAINT_TYPE || -------------- + ------------------------------- + ------------------- || Nghệ sĩ | PK__Artists__25706B50FCD918B1 | CHÌA KHÓA CHÍNH || Thể loại | PK__Genres__0385057E88BB96F8 | CHÌA KHÓA CHÍNH || Album | PK__Albums__97B4BE379FC780BD | CHÌA KHÓA CHÍNH || Album | FK_Albums_Artists | CHÌA KHÓA NGOẠI TỆ || Album | FK_Albums_Genres | TỪ KHÓA NGOẠI TỆ | + -------------- + ------------------------------- + ------------------- + 

Chế độ xem này không cung cấp tên cột, nhưng nó cung cấp loại ràng buộc. Do đó, bạn có thể thu hẹp kết quả chỉ thành các khóa chính:

 SELECT TABLE_NAME, CONSTRAINT_NAME, CONSTRAINT_TYPEFROM INFORMATION_SCHEMA.TABLE_CONSTRAINTSWHERE CONSTRAINT_TYPE ='PRIMARY KEY'; 

Kết quả:

 + -------------- + ------------------------------- + ------------------- + | TABLE_NAME | CONSTRAINT_NAME | CONSTRAINT_TYPE || -------------- + ------------------------------- + ------------------- || Nghệ sĩ | PK__Artists__25706B50FCD918B1 | CHÌA KHÓA CHÍNH || Thể loại | PK__Genres__0385057E88BB96F8 | CHÌA KHÓA CHÍNH || Album | PK__Albums__97B4BE379FC780BD | TỪ KHÓA CHÍNH | + -------------- + ------------------------------- + ------------------- + 

Dưới đây là một ví dụ sử dụng ký tự đại diện (* ) để trả về tất cả dữ liệu cho các ràng buộc trên Artists bảng:

 SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTSWHERE TABLE_NAME ='Nghệ sĩ'; 

Kết quả:

 CONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | PK__Artists__25706B50FCD918B1TABLE_CATALOG | MusicTABLE_SCHEMA | dboTABLE_NAME | Nghệ sĩCONSTRAINT_TYPE | PRIMARY KEYIS_DEFERRABLE | NOINITIALLY_DEFERRED | KHÔNG 

Ví dụ 6 - Chế độ xem hệ thống key_constraints

sys.key_constraints chế độ xem hệ thống chứa một hàng cho mỗi đối tượng là khóa chính hoặc ràng buộc duy nhất. Do đó, chúng tôi có thể sử dụng mã sau để trả về tất cả các ràng buộc khóa chính trong cơ sở dữ liệu, cùng với bảng có liên quan cho từng khóa chính:

 SELECT OBJECT_NAME (parent_object_id) AS 'Table', nameFROM sys.key_constraints WHERE type ='PK'; 

Kết quả:

 + --------- + ------------------------------- + | Bảng | tên || --------- + ------------------------------- || Nghệ sĩ | PK__Artists__25706B50FCD918B1 || Thể loại | PK__Genres__0385057E88BB96F8 || Album | PK__Albums__97B4BE379FC780BD | + --------- + ------------------------------- + 

Tất nhiên, bạn có thể xóa WHERE mệnh đề để trả về cả khóa chính khóa duy nhất.

Ví dụ trước sử dụng OBJECT_NAME() hàm để trả về tên bảng chính chứ không phải là object_id của nó. Nếu tôi không sử dụng OBJECT_NAME() hàm, kết quả sẽ trông như thế này:

 SELECT parent_object_id, nameFROM sys.key_constraintsWHERE type ='PK'; 

Kết quả:

 + -------------------- + ------------------------- ------ + | parent_object_id | tên || -------------------- + -------------------------- ----- || 885578193 | PK__Artists__25706B50FCD918B1 || 917578307 | PK__Genres__0385057E88BB96F8 || 949578421 | PK__Albums__97B4BE379FC780BD | + -------------------- + -------------------------- ----- + 

parent_object_id được trả về thay vì tên của đối tượng chính. OBJECT_NAME() chức năng này giúp chúng tôi dễ dàng hiểu được mỗi khóa được áp dụng cho bảng nào.

Đây là một ví dụ mà tôi sử dụng ký tự đại diện (* ) để trả về tất cả các cột cho khóa chính trên Album bảng:

 SELECT * FROM sys.key_constraintsWHERE type ='PK'AND OBJECT_NAME (parent_object_id) =' Album '; 

Kết quả:

 tên | PK__Albums__97B4BE379FC780BDobject_id | 965578478principal_id | NULLschema_id | 1parent_object_id | 949578421 loại | PKtype_desc | PRIMARY_KEY_CONSTRAINTcreate_date | 2019-05-02 12:56:06.377modify_date | 2019-05-02 12:56:06.377is_ms_shipped | 0is_published | 0is_schema_published | 0unique_index_id | 1is_system_name | 1is_enforced | 1 

Ví dụ 7 - Chế độ xem hệ thống sys.objects

sys.objects chế độ xem hệ thống chứa một hàng cho mỗi đối tượng phạm vi lược đồ, do người dùng xác định, được tạo trong cơ sở dữ liệu. Vì vậy, nó chứa các bảng và khóa chính của chúng ta.

Chúng tôi có thể sử dụng truy vấn trước đó và thay thế key_constraints với các đối tượng objects và chúng tôi sẽ nhận được cùng một kết quả:

 SELECT OBJECT_NAME (parent_object_id) AS 'Table', nameFROM sys.objects WHERE type ='PK'; 

Kết quả:

 + --------- + ------------------------------- + | Bảng | tên || --------- + ------------------------------- || Nghệ sĩ | PK__Artists__25706B50FCD918B1 || Thể loại | PK__Genres__0385057E88BB96F8 || Album | PK__Albums__97B4BE379FC780BD | + --------- + ------------------------------- + 

Dưới đây là một ví dụ trả về tất cả dữ liệu cho PK__Genres__0385057E88BB96F8 khóa chính:

 CHỌN * TỪ sys.objectsWHERE name ='PK__Genres__0385057E88BB96F8'; 

Kết quả (sử dụng đầu ra dọc):

 tên | PK__Genres__0385057E88BB96F8object_id | 933578364principal_id | NULLschema_id | 1parent_object_id | 917578307 kiểu | PKtype_desc | PRIMARY_KEY_CONSTRAINTcreate_date | 2019-05-02 12:56:06.110modify_date | 2019-05-02 12:56:06.110is_ms_shipped | 0is_published | 0is_schema_published | 0 

Ví dụ 8 - Chế độ xem Hệ thống REFERENTIAL_CONSTRAINTS

Điều này hơi dài, nhưng nó có thể hữu ích tùy thuộc vào tình huống của bạn. Và về mặt kỹ thuật, nó trả về (một số) khóa chính.

INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS chế độ xem hệ thống trả về một hàng cho mỗi FOREIGN KEY ràng buộc trong cơ sở dữ liệu hiện tại. Vì vậy, mục đích của nó thực sự là trả về các khóa ngoại - không phải khóa chính. Tuy nhiên, chế độ xem này có thể hữu ích nếu bạn chỉ muốn xem tất cả các khóa chính có khóa ngoại được liên kết. Đây không phải là một phương pháp đáng tin cậy để sử dụng nếu bạn muốn xem tất cả các khóa chính bất kể có khóa ngoại liên quan hay không.

Đây là một ví dụ:

 SELECT CONSTRAINT_NAME, UNIQUE_CONSTRAINT_NAMEFROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS; 

Kết quả:

 + ------------------- + -------------------------- ----- + | CONSTRAINT_NAME | UNIQUE_CONSTRAINT_NAME || ------------------- + --------------------------- ---- || FK_Albums_Artists | PK__Artists__25706B50FCD918B1 || FK_Albums_Genres | PK__Genres__0385057E88BB96F8 | + ------------------- + --------------------------- ---- + 

Như bạn có thể thấy, điều này chỉ trả về những khóa chính có khóa ngoại được liên kết. Nói chính xác hơn, thực tế thì ngược lại - nó trả về tất cả các khóa ngoại, cùng với UNIQUE được liên kết của chúng ràng buộc.

Vì vậy, nếu chúng ta so sánh các kết quả này với kết quả từ các ví dụ trước, chúng ta có thể thấy rằng chỉ có hai khóa chính được trả về (so với ba khóa từ các ví dụ trước). Điều này là do một trong các khóa chính trong cơ sở dữ liệu này ( PK__Albums__97B4BE379FC780BD ) không có khóa ngoại liên quan.

Dưới đây là một ví dụ trả về tất cả dữ liệu cho các khóa ngoại PK__Artists__25706B50FCD918B1 UNIQUE ràng buộc:

 SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTSWHERE UNIQUE_CONSTRAINT_NAME ='PK__Artists__25706B50FCD918B1'; 

Kết quả:

 CONSTRAINT_CATALOG | MusicCONSTRAINT_SCHEMA | dboCONSTRAINT_NAME | FK_Albums_ArtistsUNIQUE_CONSTRAINT_CATALOG | NhạcUNIQUE_CONSTRAINT_SCHEMA | dboUNIQUE_CONSTRAINT_NAME | PK__Artists__25706B50FCD918B1MATCH_OPTION | SIMPLEUPDATE_RULE | KHÔNG CÓ ACTIONDELETE_RULE | KHÔNG CÓ HÀNH ĐỘNG 

Trong trường hợp này, chỉ một khóa ngoại được trả về.

Như đã đề cập, dạng xem này chủ yếu để trả về thông tin khóa ngoại, vì vậy chỉ sử dụng phương pháp này nếu bạn muốn xem thông tin khóa ngoại cùng với khóa chính được liên kết. Không sử dụng phương pháp này nếu bạn muốn xem tất cả các khóa chính bất kể chúng có khóa ngoại được liên kết hay không.

Ví dụ 9 - Thủ tục lưu trữ hệ thống sp_fkeys

Phương thức này tương tự như phương pháp trước, theo nghĩa là nó trả về thông tin khóa ngoại. Nó cũng trả về khóa chính được liên kết với mỗi khóa ngoại.

Ví dụ:

 EXEC sp_fkeys Artists; 

Kết quả (sử dụng đầu ra dọc):

 PKTABLE_QUALIFIER | MusicPKTABLE_OWNER | dboPKTABLE_NAME | Nghệ sĩPKCOLUMN_NAME | ArtistIdFKTABLE_QUALIFIER | MusicFKTABLE_OWNER | dboFKTABLE_NAME | AnbomFKCOLUMN_NAME | Nghệ sĩIdKEY_SEQ | 1UPDATE_RULE | 1DELETE_RULE | 1FK_NAME | FK_Albums_ArtistsPK_NAME | PK__Artists__25706B50FCD918B1DEFERRABILITY | 7 

Tôi có thể đã sử dụng cú pháp sau để thay thế (hoặc kết hợp các đối số này):

 EXEC sp_fkeys @pktable_name =Artists, @pktable_owner =dbo, @pktable_qualifier =Music, @fktable_name =Albums, @fktable_owner =dbo, @fktable_qualifier =Music; 

Như với ví dụ trước, không nên dựa vào phương thức này để trả về tất cả các khóa chính. Nếu khóa chính không có khóa ngoại được liên kết, khóa đó sẽ không được trả lại.

Ví dụ 10 - Thủ tục lưu trữ hệ thống sp_helpconstraint

sp_helpconstraint hệ thống lưu trữ thủ tục trả về danh sách tất cả các loại ràng buộc, tên do người dùng xác định hoặc do hệ thống cung cấp, các cột mà chúng đã được xác định và biểu thức xác định ràng buộc (đối với DEFAULTCHECK chỉ ràng buộc).

Do đó, bạn có thể sử dụng nó để trả về thông tin về khóa chính trong cơ sở dữ liệu của mình.

Ví dụ:

 EXEC sp_helpconstraint Albums; 

Kết quả:

 + --------------- + | Tên đối tượng || --------------- || Anbom | + --------------- + - [GHI 1] ------------------------- loại_bạn | FOREIGN KEYconstraint_name | FK_Albums_Artistsdelete_action | Không có Actionupdate_action | Không có Actionstatus_enabled | Enabledstatus_for_replication | Is_For_Replicationconstraint_keys | ArtistId- [RECORD 2] ------------------------- binding_type | tên_kết_thức | delete_action | update_action | status_enabled | status_for_replication | ràng buộc | TÀI LIỆU THAM KHẢO Music.dbo.Artists (ArtistId) - [GHI 3] ------------------------- binding_type | FOREIGN KEYconstraint_name | FK_Albums_Genresdelete_action | Không có Actionupdate_action | Không có Actionstatus_enabled | Enabledstatus_for_replication | Is_For_Replicationconstraint_keys | GenreId- [GHI NHẬN 4] ------------------------- binding_type | tên_kết_thức | delete_action | update_action | status_enabled | status_for_replication | ràng buộc | TÀI LIỆU THAM KHẢO Music.dbo.Genres (GenreId) - [GHI 5] ------------------------- binding_type | TỪ KHÓA CHÍNH (cụm) tên_làm_cân | PK__Albums__97B4BE379FC780BDdelete_action | (n / a) update_action | (n / a) status_enabled | (n / a) status_for_replication | (n / a) các phím hạn chế | AlbumId 

Ví dụ 11 - Thủ tục lưu trữ hệ thống sp_help

sp_help hệ thống lưu trữ thủ tục báo cáo thông tin về một đối tượng cơ sở dữ liệu (bất kỳ đối tượng nào được liệt kê trong sys.sysobjects chế độ xem tương thích), kiểu dữ liệu do người dùng xác định hoặc kiểu dữ liệu. Điều này bao gồm thông tin về khóa chính.

Khi bạn chạy điều này mà không có bất kỳ đối số nào, nó cung cấp thông tin về thông tin tóm tắt của tất cả các loại đối tượng tồn tại trong cơ sở dữ liệu hiện tại được trả về (tức là a lot thông tin).

Tuy nhiên, bạn có thể cung cấp tên của một bảng và nó sẽ trả về thông tin về bảng đó. Một lần nữa, bạn sẽ nhận được nhiều thông tin được trả về, nhưng trong số này sẽ là thông tin quan trọng chính.

Ví dụ:

 EXEC sp_help Artists; 

Kết quả:

 + --------- + --------- + ------------ + ------------- ------------ + | Tên | Chủ đầu tư | Loại | Created_datetime || --------- + --------- + ------------ + -------------- ----------- || Nghệ sĩ | dbo | bảng người dùng | 2019-05-02 12:56:05.840 | + --------- + --------- + ------------ + ----- -------------------- + - [GHI 1] ------------------------ -Tên_tên | ArtistIdType | intComputed | noLength | 4Prec | 10 Thang điểm | 0 Không thể xóa | noTrimTrailingBlanks | (n / a) FixedLenNullInSource | (n / a) Đối chiếu | NULL- [GHI 2] ------------------------- Tên_bài | ArtistNameType | nvarcharComputed | noLength | 510Prec | Quy mô | Nullable | noTrimTrailingBlanks | (n / a) FixedLenNullInSource | (n / a) Đối chiếu | SQL_Latin1_General_CP1_CI_AS- [GHI 3] ------------------------- Tên_bài | ActiveFromType | dateComputed | noLength | 3Prec | 10 Thang điểm | 0 Không thể xóa | yesTrimTrailingBlanks | (n / a) FixedLenNullInSource | (n / a) Đối chiếu | KHÔNG CÓ + ------------ + -------- + ------------- + ------------ ----------- + | Danh tính | Hạt giống | Sự gia tăng | Không để sao chép || ------------ + -------- + ------------- + --------- -------------- || ArtistId | 1 | 1 | 0 | + ------------ + -------- + ------------- + ----------- ------------ + + ------------------------------- + | RowGuidCol || ------------------------------- || Không có cột rowguidcol nào được xác định. | + ------------------------------- + + --------------- -------------- + | Data_located_on_filegroup || ----------------------------- || CHÍNH | + ----------------------------- + + ---------------- --------------- + ---------------------------------- ----------------- + -------------- + | index_name | index_description | index_keys || ------------------------------- + --------------- ------------------------------------ + ------------- - || PK__Artists__25706B50FCD918B1 | nhóm, duy nhất, khóa chính nằm trên PRIMARY | ArtistId | + ------------------------------- + --------------- ------------------------------------ + ------------- - + - [GHI 1] ------------------------- kiểu_bạn | TỪ KHÓA CHÍNH (cụm) tên_làm_cân | PK__Artists__25706B50FCD918B1delete_action | (n / a) update_action | (n / a) status_enabled | (n / a) status_for_replication | (n / a) các phím hạn chế | ArtistId + -------------------------------------- + | Bảng được tham chiếu bởi khóa ngoại || -------------------------------------- || Music.dbo.Albums:FK_Albums_Artists | + -------------------------------------- +  

Bạn cũng có thể cung cấp tên của khóa chính để biết một số thông tin cơ bản về khóa đó:

 EXEC sp_help PK__Artists__25706B50FCD918B1; 

Kết quả:

 + ------------------------------- + --------- + ---- ------------- + ------------------------- + | Tên | Chủ đầu tư | Loại | Created_datetime || ------------------------------- + --------- + ----- ------------ + ------------------------- || PK__Artists__25706B50FCD918B1 | dbo | khóa chính cns | 2019-05-02 12:56:05.853 | + --------------------------------- + ------ --- + ----------------- + ------------------------- +  
  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Lấy múi giờ hiện tại của máy chủ trong SQL Server (T-SQL)

  2. Cấu hình theo phạm vi cơ sở dữ liệu SQL Server và sửa kế hoạch tự động

  3. Làm thế nào để xuất trường hình ảnh sang tệp?

  4. Mệnh đề WHERE so với ON khi sử dụng JOIN

  5. Thay đổi Chế độ nghi ngờ cơ sở dữ liệu SQL thành Chế độ bình thường với truy vấn