MSSQL查询所有主键:精准而完整(mssql查询所有的主键)

的数据获取

MSSQL 查询所有主键是一个极其重要的数据库维护任务,它可以帮助检查数据库字段中的内容,并发掘出不一致的情况。从而保证数据准确、完整。在SQL Server 2005/2008或更高版本中,可以使用如下代码实现MSSQL查询所有主键:

SELECT

C.name AS ColumnName

FROM

sys.objects O

INNER JOIN

sys.columns C ON O.object_id = C.object_id

INNER JOIN

sys.key_constraints KC ON O.object_id = KC.parent_object_id

WHERE

O.type IN (‘U’, ‘V’)

AND

C.column_id = KC.column_id

#该语句会列出当前数据库中所有表和视图的主键字段名称,以及有哪些字段是数据库的主键。另外,您还可以使用存储过程来查询数据库中所有主键:

CREATE PROCEDURE sp_ListAllPrimaryKeys

AS

BEGIN

DECLARE @i INT

DECLARE @tablename sysname

DECLARE @keyname sysname

SELECT @i=min(id)

FROM sysobjects

WHERE xtype=’U’

AND uid=USER_ID()

WHILE @i IS NOT NULL

BEGIN

SELECT @tablename=name

FROM sysobjects

WHERE xtype=’U’

AND uid=USER_ID()

AND id=@i

SELECT @keyname=name

FROM sysindexes

WHERE indid IN

(

SELECT l.indid

FROM sysobjects t, sysindexes l

WHERE t.id= l.id

AND t.name=@tablename

AND l.status & 2048 = 2048

)

IF @keyname IS NOT NULL

SELECT @tablename AS tablename, @keyname AS keyname

SELECT @i= MIN(id)

FROM sysobjects

WHERE xtype=’U’

AND uid=USER_ID()

AND id>@i

END

END

上面给出的语句和程序,可以帮助实现MSSQL查询所有主键的目的,数据库的维护者和开发者可以准确、完整的获取和保留数据。


数据运维技术 » MSSQL查询所有主键:精准而完整(mssql查询所有的主键)