查询数据库中所有的表:
select [id], [name],0 as statu from [sysobjects] where [type] = 'u' order by [name]
查询表结构:
--查询表结构 ALTER PROCEDURE [dbo].[ziduan] @name nvarchar(50) AS BEGIN if ISNULL(@name,'')<>'' BEGIN select CAST( ROW_NUMBER() over(order by a.object_id) as nvarchar(50) ) as 编号, c.TABLE_NAME as '表名', a.name as 字段名, Cast( (case c.DATA_TYPE+'' when 'varchar' then 'varchar('+CONVERT(varchar(10),c.CHARACTER_MAXIMUM_LENGTH)+')' when 'nvarchar' then 'nvarchar('+CONVERT(varchar(10),c.CHARACTER_MAXIMUM_LENGTH)+')' when 'decimal' then 'decimal('+CONVERT(varchar(10),c.NUMERIC_PRECISION)+','+CONVERT(varchar(10),c.NUMERIC_SCALE)+')' else cast( c.DATA_TYPE as nvarchar(50)) end ) as nvarchar(50))AS 数据类型, (case c.IS_NULLABLE when 'YES' THEN 'Y' else 'N' end) as 是否为空, '' AS 性质, '' AS 取值范围, CAST( ISNULL(b.value,'') as nvarchar(200) )as 描述 FROM sys.columns a left join sys.extended_properties b on (a.column_id=b.minor_id and a.object_id=b.major_id) left join INFORMATION_SCHEMA.COLUMNS c on a.name=c.COLUMN_NAME where a.object_id=object_id(@name) and c.TABLE_NAME=@name order by a.column_id END else select '请输入表名' END
整理所有表结构数据:
--所有表结构数据 select [id], [name],0 as statu into #t from [sysobjects] where [type] = 'u' order by [name] create table #t2 ( 编号 varchar(50), 表名 varchar(50), 字段名 varchar(50), 数据类型 sql_variant, --varchar(50), 是否为空 varchar(50), 性质 varchar(50), 取值范围 varchar(50), 描述 nvarchar(200) ) declare @c int ; select @c= COUNT(1) from #t a where a.statu=0 while(@c>0) begin declare @TableName nvarchar(50); select top 1 @TableName=a.name from #t a where a.statu=0 insert into #t2 exec dbo.ziduan @TableName update a set a.statu=1 from #t a where a.statu=0 and a.name=@TableName set @c=@c-1; end select distinct a.表名 from #t2 a select * from #t2 a