create proc [dbo].[describe]
@table_name Nvarchar(100)
as
select c.name as column_name,
case t.name
when 'numeric' then
t.name+'('+cast(c.precision as varchar(5))+','+cast(c.scale as varchar(5))+')'
when 'char' then
t.name+'('+cast(c.max_length as varchar(5))+')'
when 'varchar' then
t.name+'('+cast(c.max_length as varchar(5))+')'
when 'nvarchar' then
t.name+'('+cast(c.max_length as varchar(5))+')'
else t.name
end as type,
case c.is_nullable
when 1 then ' '
else 'NOT NULL'
end as nullable
from sys.all_columns as c, sys.types as t
where c.system_type_id=t.system_type_id
and t.name<>'sysname' and c.object_id=object_id(@table_name)
[@more@]来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/37724/viewspace-964935/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/37724/viewspace-964935/
本文提供了一个SQL Server中用于描述指定表结构的存储过程。该过程能够返回表中的列名、类型及其是否允许为空等信息,对于了解和维护数据库表结构非常有用。
313

被折叠的 条评论
为什么被折叠?



