SqlServer数据库字典--主键.外键.约束.视图.函数.存储过程.触发器.sqlSELECT DISTINCT TOP 100 PERCENT o.xtype, CASE o.xtype WHEN 'X' THEN '扩展存储过程' WHEN 'TR' THEN '触发器' WHEN 'PK' THEN '主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束' WHEN 'V' THEN '视图' WHEN 'FN' THEN '函数-标量' WHEN 'IF' THEN '函数-内嵌' WHEN 'TF' THEN '函数-表值' ELSE '存储过程' END AS 类型, o.name AS 对象名, o.crdate AS 创建时间, o.refdate AS 更改时间, c.text AS 声明语句 FROM dbo.sysobjects o LEFT OUTER JOIN dbo.syscomments c ON o.id = c.id WHERE (o.xtype IN ('X', 'TR', 'C', 'V', 'F', 'IF', 'TF', 'FN', 'P', 'PK')) AND (OBJECTPROPERTY(o.id, N'IsMSShipped') = 0) ORDER BY CASE o.xtype WHEN 'X' THEN '扩展存储过程' WHEN 'TR' THEN '触发器' WHEN 'PK' THEN '主键' WHEN 'F' THEN '外键' WHEN 'C' THEN '约束' WHEN 'V' THEN '视图' WHEN 'FN' THEN '函数-标量' WHEN 'IF' THEN '函数-内嵌' WHEN 'TF' THEN '函数-表值' ELSE '存储过程' END DESC
2,数据库 右键 任务 生成脚本 下一步 生成触发器true
drop function fgetscript
go/*--
调用sqldmo生成脚本的函数--邹建 2003.07(引用请保留此信息)--*//*--调用实例
print dbo.fgetscript( 'zj ', ' ', ' ', 'xzkh_sa ', 'syscolumns ')/*--得到所有对象的脚本
declare @name varchar(250)
declare #aa cursor for
select name from sysobjects where xtype not in( 'S ', 'PK ', 'D ', 'X ', 'L ')
open #aa
fetch next from #aa into @name
while @@fetch_status=0
begin
print dbo.fgetscript( 'zj ', ' ', ' ', 'xzkh_sa ',@name)
fetch next from #aa into @name
end
close #aa
deallocate #aa
--*/
--*/create function fgetscript(
@servername varchar(50) --服务器名
,@userid varchar(50)= 'sa ' --用户名,如果为nt验证方式,则为空
,@password varchar(50)= ' ' --密码
,@databasename varchar(50) --数据库名称
,@objectname varchar(250) --对象名) returns varchar(8000)
as
begin
declare @re varchar(8000) --返回脚本
declare @srvid int,@dbsid int --定义服务器、数据库集id
declare @dbid int,@tbid int --数据库、表id
declare @err int,@src varchar(255), @desc varchar(255) --错误处理变量--创建sqldmo对象
exec @err=sp_oacreate 'sqldmo.sqlserver ',@srvid output
if @err <> 0 goto lberr--连接服务器
if isnull(@userid, ' ')= ' ' --如果是 Nt验证方式
begin
exec @err=sp_oasetproperty @srvid, 'loginsecure ',1
if @err <> 0 goto lberrexec @err=sp_oamethod @srvid, 'connect ',null,@servername
end
else
exec @err=sp_oamethod @srvid, 'connect ',null,@servername,@userid,@passwordif @err <> 0 goto lberr--获取数据库集
exec @err=sp_oagetproperty @srvid, 'databases ',@dbsid output
if @err <> 0 goto lberr--获取要取得脚本的数据库id
exec @err=sp_oamethod @dbsid, 'item ',@dbid output,@databasename
if @err <> 0 goto lberr--获取要取得脚本的对象id
exec @err=sp_oamethod @dbid, 'getobjectbyname ',@tbid output,@objectname
if @err <> 0 goto lberr--取得脚本
exec @err=sp_oamethod @tbid, 'script ',@re output
if @err <> 0 goto lberr--print @re
return(@re)lberr:
exec sp_oageterrorinfo NULL, @src out, @desc out
declare @errb varbinary(4)
set @errb=cast(@err as varbinary(4))
exec master..xp_varbintohexstr @errb,@re out
set @re= '错误号: '+@re
+char(13)+ '错误源: '+@src
+char(13)+ '错误描述: '+@desc
return(@re)
end
go
1、
数据库 右键 任务 生成脚本 下一步 生成触发器。 2、查看系统表 sys.syscomments