Sqlserver查看数据库中所有表名以及表里所有字段名!
Sqlserver查看数据库中所有表名以及表里所有字段名!
转自:michaelxwang
数据库中名字
select * from sysobjects where xtype='u'
表中字段
SELECT COLUMN_NAME,DATA_TYPE FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='table_name'
更改字段名
EXEC sp_rename '[dbo].[table_name].[old_column_name]','new_column_name'
生成该数据库所有表所有字段空值检查脚本
逻辑:
1.获取该数据所有表对应的所有字段名
2.根据字段生成空值检查脚本(字段名 is null or 字段名 = '')
SELECT TABLE_CATALOG,TABLE_NAME,COLUMN_NAME,DATA_TYPE,
'Select count(*) from ['+TABLE_CATALOG+'].[dbo].['+ TABLE_NAME+'] where ['+COLUMN_NAME+'] is null or ['+COLUMN_NAME+'] ='''' 'as sql
FROM INFORMATION_SCHEMA.columns
-- WHERE TABLE_NAME='table_name'
order by TABLE_CATALOG,TABLE_NAME,COLUMN_NAME
升级:
SELECT TABLE_CATALOG,TABLE_NAME,COLUMN_NAME,DATA_TYPE,
'Select @count=count(*) from ['+TABLE_CATALOG+'].[dbo].['+ TABLE_NAME+'] where ['+COLUMN_NAME+'] is null or ['+COLUMN_NAME+'] ='''' 'as sql,
CAST('' as varchar(50)) as [count]
into #ColumnIsNull
FROM INFORMATION_SCHEMA.columns
order by TABLE_CATALOG,TABLE_NAME,COLUMN_NAME
---------------------------------------------
DECLARE @sql NVARCHAR(4000)
DECLARE @cou NVARCHAR(4000)
DECLARE cur CURSOR STATIC LOCAL FOR --声明游标变量 创建游标
SELECT sql FROM #ColumnIsNull --提取#files中的sql语句
OPEN cur --打开游标
WHILE 1 = 1 --开始循环
BEGIN
FETCH cur INTO @sql --将游标值写入sql
IF @@fetch_status <> 0 --若语句失败
BREAK --循环结束
exec sp_executesql @sql, N'@count varchar(20) out', @cou out --执行sql
update #ColumnIsNull set [count] = @cou where sql = @sql --更新插入行数
print(@sql) --打印sql
END
--DEALLOCATE cur ----摧毁游标所占资源
--查看临时表
select * from #ColumnIsNull
--删除临时表
drop table #ColumnIsNull
学习资料见知识星球。
以上就是今天要分享的技巧,你学会了吗?若有什么问题,欢迎在下方留言。
快来试试吧,小琥 my21ke007。获取 1000个免费 Excel模板福利!
更多技巧, www.excelbook.cn
欢迎 加入 零售创新 知识星球,知识星球主要以数据分析、报告分享、数据工具讨论为主;
1、价值上万元的专业的PPT报告模板。
2、专业案例分析和解读笔记。
3、实用的Excel、Word、PPT技巧。
4、VIP讨论群,共享资源。
5、优惠的会员商品。
6、一次付费只需99元,即可下载本站文章涉及的文件和软件。
共有 0 条评论