利用sqlserver的事件查探器可以帮助我们获取很多有用信息,现在就介绍下用事件查探器获取程序使用的sql语句。
工具/原料
sqlserver 2000数据库系统
方法/步骤
1、打开事件查探器
2、文件->新建->跟踪,输入相关登录信息,点击确定。
3、在跟踪属性窗口,选择筛选选项卡,在下面选框中找到hostname下的同于下的文本框中输入本机主机名,其他选项若有需求可以自己设置。
4、点击确定后,会在d出的窗口中显示本机中数据库中正在使用的sql语句。
5、这时打开使用该数据库的程序,点击相关的 *** 作数据库的 *** 作。回到事件查探器,点击停止按钮,这时就可以在窗口中找到相应的sql语句。
注意事项
在使用事件查探器时,最好关闭其他与数据库有联系的无关程序。
--SQL 查询所有表名:SELECT NAME FROM SYSOBJECTS WHERE TYPE='U'
SELECT * FROM INFORMATION_SCHEMA.TABLES
--查询表的所有字段名:
SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID(' 表名' )
SELECT * FROM INFORMATION_SCHEMA.TABLES
SELECT * FROM INFORMATION_SCHEMA.VIEWS
SELECT * FROM INFORMATION_SCHEMA.COLUMNS
---------以下为其他数据库查询表----------
--ORACLE 查看所有表名:
SELECT TABLE_NAME FROM USER_TABLES
--ACCESS 查看所有表名:
SELECT NAME FROM MSYSOBJECTS WHERE TYPE=1 AND FLAGS=0
--MSYSOBJECTS 是系统对象,默认情况是隐藏的。通过工具、选项、视图、显示、系统对象可以使之显示出来。
两种方法,一种是查询重复的数据,只查询重复记录,不管其余信息,如ID什么的:
select uid, time from ztest GROUP BY uid, time having count(*)>1查出结果是
uid time
1 1
还有一种是查询你指定信息,可以查询出ID信息:
select distinct a.id, a.uid, a.time from ztest a join ztest b on a.id != b.id where a.uid = b.uid and a.time = b.time查询结果是:
id uid time
1 1 1
3 1 1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)