美文网首页大数据 爬虫Python AI Sql
Sqlserver查看数据库中所有表名以及表里所有字段名

Sqlserver查看数据库中所有表名以及表里所有字段名

作者: michaelxwang | 来源:发表于2019-12-18 11:08 被阅读0次

    数据库中名字

    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
    
    

    相关文章

      网友评论

        本文标题:Sqlserver查看数据库中所有表名以及表里所有字段名

        本文链接:https://www.haomeiwen.com/subject/ikgynctx.html