--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
--脚本代码结束
分享到:
相关推荐
可以查看用户表、系统表、视图、存储过程、函数、用户自定义数据类型,而且表和视图可以查看:表结构、主键、外键、索引;视图和存储过程还可以查看创建SQL脚本。 强大的二次数据分析功能 对查询出来的数据进行二次...
10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11、说明:四表联查问题: select * from a left ...
强大的数据库结构分析 可以查看用户表、系统表、视图、存储过程、函数、用户自定义数据类型,而且表和视图可以查看:表结构、主键、外键、索引;视图和存储过程还可以查看创建SQL脚本。 强大的二次数据分析功能 对...
10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11、说明:四表联查问题: select * from a left ...
屏蔽数据库间的差异,以统一的界面和操作方式来对数据进行处理,将程序员或数据管理员从繁琐的操作模式中解脱出来,使其更加专注的进行Sql语句的编写。 将查询分析器和企业管理器功能合二为一,并融入众多实用...
用表格显示 SELECT 语句的查询结果,可以直接对查询结果进行再操作,如 修改、插入行、删除行、提交(将表格中的数据改变写入相应的数据库表中)、多功能拷贝、导出为 INSERT 语句、单条记录操作、方便的查找及替换...
10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11、说明:四表联查问题: select * from a left ...
如 修改、插入行、删除行、提 交(将表格中的数据改变写入相应的数据库表中)、多功能拷贝、将选择的单元格数据导出为 XLS /CSV /INSERT SQL /HTML /XML 等格式、单条记录操作、能方便地查找\替换单元格中的数据、...
10、说明:两张关联表,删除主表中已经在副表中没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 ) 11、说明:四表联查问题: select * from a left ...
SELECT 语句的查询结果显示在工作表,可以直接对查询结果进行再操作,如 修改、 插入行、删除行、提交(将表格中的数据改变写入相应的数据库表中)、多功能拷贝、将选 择的单元格数据导出为 XLS /CSV /INSERT SQL /...
3.3.1 向数据库中添加数据表 82 3.3.2 编辑数据表属性 84 3.3.3 为数据表指定主键、外键和索引 87 3.3.4 浏览数据表 90 3.3.5 插入、修改和更新记录 91 3.3.6 为数据表创建视图 92 3.4 创建查询 94 3.4.1 ...
<br>IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...
SQL(Structured Query Language)结构化查询语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。同时也是数据库脚本文件的扩展名。 SQL语言主要包含5个部分 数据定义...
[Q]怎么知道那些表没有建立主键 21 [Q]dbms_output提示缓冲区不够,怎么增加 22 [Q]怎么样修改表的列名 22 [Q]怎么样给sqlplus安装帮助 22 [Q]怎么样快速下载Oracle补丁 22 [Q]如何移动数据文件 23 [Q]如果管理联机...
<br>IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...
85 <br>0131 巧截字符串的数字 86 <br>0132 如何存储变长字符串 86 <br>0133 在进行字符串比较时忽略大小写 87 <br>0134 如何去除字符串尾空格 87 <br>0135 如何去掉字符串中所有空格 ...
<br>IBatisNet是一个轻量级ORMap工具,它把所有的SQL脚本以模板的方式集中到若干个XML配置文件里,用反射的方式向把C#类实体对象属性与SQL模板的参数绑定,动态生成参数化的SQL语句发送给数据库执行,查询的结果...
33、怎么获取类中所有的方法,所有属性 77 34、JDBC常用接口有哪些? 77 35、Statement 中execute、executeUpdate、executeQuery这三者的区别 78 36、jdbc中怎么做批量处理的? 80 37、什么是json 83 38、json与xml...