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查询所有主键的目的,数据库的维护者和开发者可以准确、完整的获取和保留数据。