SQL SERVER中查询无主键的SQL
2016-08-01 11:12
190 查看
--生成表
IF EXISTS ( SELECT name
FROM sysobjects
WHERE xtype = 'u' )
BEGIN
DROP TABLE TableRowCount
END
go
CREATE TABLE TableRowCount
(
ID INT IDENTITY(1, 1) ,
TableName VARCHAR(500) ,
ColumnsCount INT DEFAULT ( 0 )
)
DECLARE @TableName VARCHAR(50) ,
@sql VARCHAR(MAX)= ''
DECLARE My_Cursor CURSOR
FOR
( SELECT name
FROM sysobjects
WHERE xtype = 'u'
)
OPEN My_Cursor;
FETCH NEXT FROM My_Cursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'INSERT INTO TableRowCount ( TableName, ColumnsCount ) SELECT '''
+ @TableName
+ ''' AS TableName ,COUNT(1) AS ColumnsCount FROM dbo.'
+ @TableName + ';'
EXEC (@sql)
FETCH NEXT FROM My_Cursor INTO @TableName;
END
CLOSE My_Cursor;
DEALLOCATE My_Cursor;
--PRINT @sql
--EXEC (@sql)
SELECT * FROM TableRowCount WHERE ColumnsCount > 0 ORDER BY ColumnsCount DESC
--查主键
SELECT b.name AS '表名' ,
CASE WHEN c.NAME IS NULL THEN '无'
ELSE '有'
END AS '主键'
FROM sysobjects b
LEFT JOIN ( ( SELECT OBJECT_NAME(a.parent_obj) AS name
FROM sysobjects a
WHERE xtype = 'PK'
) ) c ON b.NAME = c.name
WHERE b.xtype = 'U'
ORDER BY c.NAME DESC
IF EXISTS ( SELECT name
FROM sysobjects
WHERE xtype = 'u' )
BEGIN
DROP TABLE TableRowCount
END
go
CREATE TABLE TableRowCount
(
ID INT IDENTITY(1, 1) ,
TableName VARCHAR(500) ,
ColumnsCount INT DEFAULT ( 0 )
)
DECLARE @TableName VARCHAR(50) ,
@sql VARCHAR(MAX)= ''
DECLARE My_Cursor CURSOR
FOR
( SELECT name
FROM sysobjects
WHERE xtype = 'u'
)
OPEN My_Cursor;
FETCH NEXT FROM My_Cursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @sql = 'INSERT INTO TableRowCount ( TableName, ColumnsCount ) SELECT '''
+ @TableName
+ ''' AS TableName ,COUNT(1) AS ColumnsCount FROM dbo.'
+ @TableName + ';'
EXEC (@sql)
FETCH NEXT FROM My_Cursor INTO @TableName;
END
CLOSE My_Cursor;
DEALLOCATE My_Cursor;
--PRINT @sql
--EXEC (@sql)
SELECT * FROM TableRowCount WHERE ColumnsCount > 0 ORDER BY ColumnsCount DESC
--查主键
SELECT b.name AS '表名' ,
CASE WHEN c.NAME IS NULL THEN '无'
ELSE '有'
END AS '主键'
FROM sysobjects b
LEFT JOIN ( ( SELECT OBJECT_NAME(a.parent_obj) AS name
FROM sysobjects a
WHERE xtype = 'PK'
) ) c ON b.NAME = c.name
WHERE b.xtype = 'U'
ORDER BY c.NAME DESC
相关文章推荐
- sql 语句 查询 sql server 主键!
- sql 列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息
- 关于SQL Server SQL语句查询分页数据的解决方案
- SQL Server学习笔记之 T-SQL研究之[基本查询]
- Visual C# 2008+SQL Server 2005 数据库与网络开发--11.3.3 LINQ to SQL的数据库查询
- 查询SQL SERVER表的字段信息的SQL
- 理解SQL Server的SQL查询计划(1)
- (转)列出SQL SERVER 所有表,字段名,主键,类型,长度,小数位数等信息的SQL语句
- sql server 2005 查询主键和索引、表结构
- 查询一个主键表的所有外键表.sql
- 查询表主键外键信息的SQL
- 查询表主键外键信息的SQL
- 关于SQL Server SQL语句查询分页数据的解决方案
- SQL 表中记录查询排序随笔(sql server中order by使用方式小总结)
- 【转】在SQL Server中通过SQL语句实现分页查询
- 在数据表中用sql实现累计计算查询(sql server 2000)
- Title:查询表主键外键信息的SQL
- SQL Server 中的XML支持,查询返回XML,Web访问SQL取XML形式结果
- SQL Server查询SQL语句的执行时间
- SQL查询主键