吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1357|回复: 0
收起左侧

[其他原创] 【MSSQL】查询数据库中所有没有加主键的表,并生成加主键SQL语句

[复制链接]
lanwd 发表于 2021-4-8 15:38

查询数据库中所有没有加主键的表,并生成加主键SQL语句

DECLARE @tableName NVARCHAR(200) ,@SQL Nvarchar(2000);
DECLARE cur CURSOR FOR
    SELECT name from (
        SELECT name FROM sys.tables
        EXCEPT
        SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS 
        WHERE CONSTRAINT_TYPE = 'PRIMARY KEY'
    ) as a
    -- 根据自己项目需要,我们项目所有表都是"Sys_"开头
     WHERE  a.name like 'Sys_%' 
OPEN cur
FETCH NEXT FROM cur INTO @tableName
WHILE @@FETCH_STATUS = 0
BEGIN 
  set @SQL=' IF NOT EXISTS(SELECT TABLE_NAME,COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME='''+@tableName+''')
BEGIN
   ALTER TABLE '+@tableName+'  ADD CONSTRAINT pk_'+@tableName+'_id PRIMARY KEY(F_Id); 
END ';
  print(@SQL);
  FETCH NEXT FROM cur INTO @tableName
END
CLOSE cur ;
DEALLOCATE cur ;

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 17:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表