查看数据库中存在触发器的表

这次在项目中,我们为了做数据库同步,采用了触发器机制,为数据库做迁移时,我们需要获取数据库中那些表使用了触发器,方便制作数据库安装包。


构思:

触发器在MSSQL作为一个对象进行管理,那么我们就可以通过sysobjects表进行查询获取,
所以我们就编写了一下触发器获取SQL

SELECT
object_name(a.parent_obj) as [表]
,a.name as [触发器]
,(case when b.is_disabled=0 then ‘使用中’ else ‘停用’ end) as [触发器状态]
,b.create_date as [写入日期]
,b.modify_date as [最后修改日期]
,c.text as [触发器内容]
FROM sysobjects a
INNER JOIN sys.triggers b
ON b.object_id=a.id
INNER JOIN syscomments c
ON c.id=a.id
WHERE a.xtype=’tr’ ——tr代表类型 触发器
ORDER BY [表]

原文地址:http://blog.51cto.com/13806592/2129187

时间: 2024-10-12 06:29:34

查看数据库中存在触发器的表的相关文章

sql-server数据库中利用触发器实现表与表之间的级联删除

create trigger Delete_Student --创建一个触发器 on student instead of delete as declare @sno varchar(20) select @sno= sno from deleted delete from score where sno=@sno delete from student where sno=@sno go delete from Student where Sno='101' select *from Stu

如何快速查看数据库中的表大小

exec sp_spaceused 以上语法可以查看数据库大小 以下可以查看数据库中每个表的数据条数 SELECT   a.name, b.rows FROM      sysobjects AS a INNER JOIN sysindexes AS b ON a.id = b.id WHERE   (a.type = 'u') AND (b.indid IN (0, 1)) ORDER BY b.rows DESC

mysql查看数据库中所有表的行数,并进行排序

mysql查看数据库中所有表的行数,并进行排序: 进行数据库迁移或还原后,可以通过比较行数,检查数据是否正确. mysql> use information_schema; mysql> select table_name,table_rows from tables where TABLE_SCHEMA= 'kpsumi' order by table_rows desc; 原文地址:http://blog.51cto.com/9285090/2119096

MYSQL 查看数据库中所有用户及拥有权限

查看MYSQL数据库中所有用户 mysql> SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;+---------------------------------------+| query                                 |+---------------------------------------+| User: 'cactiuser'@

mysql创建某个数据库中的某张表 只读用户

1.创建用户,并授权SELECT查询权限,授权远程访问权限,注意,命令中username/password指用户名密码,请自己指定.若要限制仅指定IP可以使用此用户访问Mysql,将%改为具IP即可,dbname指定限制的数据库,如果是全部则改为*. GRANT SELECT ON dbname.* TO 'username'@'%' IDENTIFIED BY "password"; 2.刷新mysql权限,使用户创建.授权生效. FLUSH PRIVILEGES; privileg

获取sqlserver数据库中所有库、表、字段名的方法

1.获取所有数据库名: SELECT Name from Master..SysDatabases ORDER BY Name 2.获取所有表名: SELECT Name from DatabaseName..SysObjects Where XType='U' ORDER BY Name XType='U':表示所有用户表; XType='S':表示所有系统表; 3.获取所有字段名: SELECT Name from SysColumns WHERE id=Object_Id('TableNa

数据库中的二维表—巧借Excel

一维表和二维表的区别         一维表也常称为流水线表格,它和二维表做出的数据透视表最大的区别在于"行总计".判断数据是一维表格还是二维表格的一个最简单的办法,就是看其列的内容--每一列是否是一个独立的参数.如果每一列都是独立的参数那就是一维表,如果每一列都是同类参数那就是二维表. 二维表的建立     开始在网上一直查找如何在数据库中建立二维表,查了很多资料大多是什么静态和动态的sql语句建立,看了看也不是很清楚但是在查询的时候总是出来Excel如何如何,于是便想是否可以在Ex

查看数据库中那些表被锁了,那些阻塞了 并且如何杀死该进程

原文地址:http://topic.csdn.net/u/20100520/14/0570ec45-a1da-4067-8940-8f5eed42f4ab.html?32933 --检测死锁 --如果发生死锁了,我们怎么去检测具体发生死锁的是哪条SQL语句或存储过程? --这时我们可以使用以下存储过程来检测,就可以查出引起死锁的进程和SQL语句.SQL Server自带的系统存储过程sp_who和sp_lock也可以用来查找阻塞和死锁, 但没有这里介绍的方法好用. use mastergocre

SQL查看数据库中每张表的数据量和总数据量

查看所有表对应的数据量 SELECT a.name AS 表名, MAX(b.rows) AS 记录条数 FROM sys.sysobjects AS a INNER JOIN sys.sysindexes AS b ON a.id = b.id WHERE (a.xtype = 'u') GROUP BY a.name ORDER BY 记录条数 DESC 查看数据库的总数据量 SELECT SUM(记录条数) AS 总记录数 FROM (SELECT TOP (10000) a.name A