您的位置:首页 > 数据库

查看数据库对象创建脚本

2013-05-09 20:55 197 查看
我们在做维护项目时经常需要查看数据库结构,但是用SQL Server Management Studio来查看数据库对象的创建脚很不方便,尤其是触发器、索引、约束的创建都与表有关,它们的脚本有关联。

首先我们来看看触发器、函数、存储过程他们的创建都是带有明显的脚本信息,这些脚本信息主要存放在sys.sql_modules,

sql代码如下:

View Code

;WITH TypeDef AS(
SELECT TypeName=QUOTENAME( SCHEMA_NAME(t.schema_id))+'.'+QUOTENAME(t.name)
,ParentName=TYPE_NAME(t.system_type_id)+''
+case
when DataType in ('decimal','numeric') then '('+cast(t.precision as varchar(10))+case when t.scale<>0 then ','+cast(t.scale as varchar(10)) else '' end +')'
when DataType in ('char','varchar','nchar','nvarchar','binary','varbinary') then '('+case when t.max_length=-1 then 'max' else case when DataType in ('nchar','nvarchar') then cast(t.max_length/2 as varchar(10)) else cast(t.max_length as varchar(10)) end end +')'
when DataType='float' and t.precision<>53 then '('+cast(t.precision as varchar(10))+')'
when DataType in ('time','datetime2','datetimeoffset') and t.scale<>7 then '('+cast(t.scale as varchar(10))+')'
else ''
end
+case when t.is_nullable=0 then ' NOT' else '' end+' NULL'
from sys.types t
cross apply (
select DataType=type_name(t.system_type_id)
) F1
WHERE t.is_user_defined=1
)
SELECT TypeName,'CREATE TYPE '+TypeName+' FROM ' +ParentName AS definition FROM TypeDef


运行结果:



最后索性把这些sql通过windows form做成一个小工具。





有不当的地方还请大家怕转。

代码可以在http://download.csdn.net/detail/dz45693/5350397下载。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: