• 得到某个数据库中没有主键的表


    --一下脚本指定数据库之后执行可以得到没有主键的表
    --SQL查找数据库中所有没有主键的数据表脚本
    --运行脚本后在消息中可能会显示下面现象中的一种:
    --(1)数据库中所有数据表都有主键(则证明所有数据表都有主键)
    --(2)当前数据表[数据表名]没有主键(则可方便找到没主键的数据表)
    declare @TableName nvarchar(250)--游标中取出的数据表名
    declare @AllTableHasPrimaryKey int--是否全部都有主键
    set @AllTableHasPrimaryKey=1
    --声明读取数据库所有数据表名和编号的游标
    declare mycursor cursor for select name from dbo.SysObjects WHERE OBJECTPROPERTY(ID, 'IsUserTable') = 1 order by name
     --打开游标
    open mycursor
    --从游标里取出数据赋值到我们刚才声明的数据表名变量中
    fetch next from mycursor into @TableName
    --如果游标执行成功
    while (@@fetch_status=0)
    begin
     --判断当前数据表是否存在主键
     IF NOT EXISTS (select * from information_schema.key_column_usage where TABLE_NAME=''+@TableName+'')
     begin
     set @AllTableHasPrimaryKey=0;
     print '当前数据表['+@TableName+']没有主键'
     end
     
     --用游标去取下一条记录
        fetch next from mycursor into @TableName
    end
    if(@AllTableHasPrimaryKey=1)
    begin
    print '数据库中所有数据表都有主键'
    end
    --关闭游标
    close mycursor
    --撤销游标
    deallocate mycursor
    --脚本代码结束
    

      

  • 相关阅读:
    awt
    登录校验 简单实现
    事务隔离级别
    事务的四大特性(ACID)
    多线程简单了解
    Eureka bug
    什么是存储过程
    filter和servlet的区别
    说说你对多线程锁机制的理解
    session的生命周期,session何时创建,何时销毁,session销毁的方式
  • 原文地址:https://www.cnblogs.com/zhoushiya/p/12107460.html
Copyright © 2020-2023  润新知