怎么可以用PLSQL高效的查询多张表的主键和索引

怎么可以用PLSQL高效的查询多张表的主键和索引,第1张

索引一般分为聚集索引和非聚集索引,表的主键一般都是聚集索引,是自动创建的,而其他字段可以创建成为非聚集索引,索引相当于书本的目录,用于快速检索。创建方法如下:
CREATE NONCLUSTERED 索引名称 ON 表名(字段)
你上面的就是CREATE NONCLUSTERED INDEX_Staff_TypeId on Staff (TypeId)
CREATE NONCLUSTERED INDEX_Staff_mondId on Staff (mondId)

索引是你在查询的时候进行快速检索,是自动实现的,所以怎么使用就不用说了吧

SELECT
colname AS 列名,
typname as 数据类型,
colmax_length AS 占用字节数,
colprecision AS 数字长度,
colscale AS 小数位数,
colis_nullable AS 是否允许非空,
colis_identity AS 是否自增,
case when exists
( SELECT 1
FROM
sysindexes idx
join sysindex_columns idxCol
on (idxobject_id = idxColobject_id)
WHERE
idxobject_id = colobject_id
AND idxColindex_column_id = colcolumn_id
AND idxis_primary_key = 1
) THEN 1 ELSE 0 END AS 是否是主键
FROM
syscolumns col left join systypes typ on (colsystem_type_id = typsystem_type_id AND coluser_type_id = typuser_type_id)
WHERE
colobject_id =
(SELECT object_id FROM systables WHERE name = ' 你的表的名字 ')

*** 作步骤如下:

1、首先我们在这个StudentNo列上用你的鼠标右击,然后选择里面的修改,进行点击,d出

界面。

2、接着会有如下图中所示的窗口内容,这里选择里面的StudentNo,然后右击选择设置主键。

3、设置完毕之后,选择ctrl + S 保存。

4、保存完毕之后,再查看设置的主键时候,没有显示设置成功,这里需要在表上右击,选择刷

新。

5、刷新之后,就可以看到你设置的主键了,在主键列表中也可以看到已将设置成功。

USE [数据库名]
GO
DECLARE @id VARCHAR(50)
SET @id = OBJECT_ID('表名')
DECLARE @index INT
SET @index = 0
DECLARE @columnId INT
SET @columnId = 0
DECLARE @column VARCHAR(200)
SET @column = ''
SELECT TOP (1) @index = index_id
FROM [sys][indexes]
WHERE object_id = @id
AND is_primary_key = 1
SELECT TOP (1) @columnId = column_id
FROM [sys][index_columns]
WHERE object_id = @id
AND index_id = 1
SELECT @column = name
FROM [sys][columns] WITH (NOLOCK)
WHERE object_id = @id
AND column_id = @columnId
SELECT @column AS [主键字段]
这个是我这边用来查询数据表主键的SQL,改造一下应该能满足你的要求。不过对于联合主键的话可能要稍微改改之类的。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13379130.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-24
下一篇 2023-07-24

发表评论

登录后才能评论

评论列表(0条)

保存