Select Syscolumns . Name
From Syscolumns , Sysobjects , Sysindexes , Sysindexkeys
Where Syscolumns . ID = Object_id ( 'Tab _ XXX' ) -- Syscolumns. ID is the table Object ID of the column.
And Sysobjects . Xtype = 'Pk' -- Sysobjects. xtype object type
And Sysobjects . Parent_obj = Syscolumns . ID
And Sysindexes . ID = Syscolumns . ID
And Sysobjects . Name = Sysindexes . Name
And Sysindexkeys . ID =Syscolumns . ID
And Sysindexkeys . Indid = Sysindexes . Indid -- The same column of the same table may have different types of Indexes
And Syscolumns . Colid = Sysindexkeys . Colid
Note: This is found in four system tables. The relationship is complex and can be roughly expressed:
SyscolumnsContains the column colid and table ID in the table. The sysobjects table contains the primary key name (similar to pk_table) and Table ID. The sysindexes contains the primary key name, table ID, and index number, sysindexkeys contains the table ID, index number, and column number. After one item is matched, the column name can be found.
Select * From syscolumns
-- Each column in each table and view occupies one row in the table, and each parameter in the stored procedure occupies one row in the table.
-- Syscolumns. ID is the table Object ID of the column.
-- Syscolumns. colid is the column Object ID
Select * From sysobjects
-- Each object created by sysobjects in the database (constraints, default values, logs, rules, stored procedures, tables, views, and so on) occupies one row in the table.
-- Sysobjects. xtype object type
-- Sysobjects. parent_obj: ID of the object of the parent object (for example, this ID is the table ID for triggers or constraints)
-- Sysobjects. Name: name of the object, which is the primary key name (similar to pk_table)
Select * From sysindexes
-- Each index and table in the database occupies one row in the table.
-- Sysindexes. ID table ID (if indid = 0 or 255 ). Otherwise, it is the ID of the table to which the index belongs.
-- Sysindexes. Name table name (if indid = 0 or 255 ). Otherwise, it is the index name. Here there is a primary key name (the primary key must be an index, see the following analysis)
-- Sysindexes. indid index ID type
Select * From sysindexkeys
-- Each index and table in the database occupies one row in the table.
-- Sysindexkeys. ID table ID
-- Sysindexkeys. indid index ID type
-- Sysindexkeys. colid column ID
The primary key must be a unique index. The unique index is not necessarily a primary key.
A primary key uniquely identifies a row in a table. A table can have only one primary key, but multiple candidate indexes. Because the primary key can uniquely identify a row of records, it can ensure that no error is reported during data update and deletion. In addition to the above functions, the primary key often forms a reference Integrity Constraint with the foreign key to prevent data inconsistency. During database design, primary keys play an important role.
The primary key can ensure that the record is unique and the primary key field is not empty,The database management system automatically generates a unique index for the primary key, so the primary key is also a special index.