1.查询数据库中表在哪些存储过程中使用
select distinct object_name(id) from syscomments where text like '%表名%'
2.查询数据库中具体存储过程的定义
方法一:EXEC sp_helptext N'存储过程名';
方法二:SELECT definition FROM sys.sql_modules WHERE object_id = (OBJECT_ID(N'PDS_ChangeKHData'));
3.查询数据库中所有的用户表
select name from sysobjects where xtype = 'U'
4.查询数据库中指定表所有列
select name from syscolumns where id = object_id(N'Order')
5.查询数据库中所有用户
SELECT name FROM Sysusers where status='0' and islogin='1' 说明:status :'2'用户账户 '0'系统账户 islogin: '1'表示账户 '0'表示角色
6.获取数据库中所有数据类型名
SELECT name FROM systypes
7.查询数据库中所有的数据库名
Select Name FROM master..SysDatabases order by Name
8.在数据库中动态执行sql语句
a)exec (@sql) //@sql 为要执行的sql语句
b)exec sp_sqlexec @sql语句,N'sql语句中的为定量的名字和数据类型及如果是输出的话写上Output,未定量之间用逗号分隔',sql语句中未定量赋值。
例:declare @sqlStr nvarchar(50)
declare @RowNum int
set @sqlStr = N'select @rowNumOut = count(*)from Customer';
exec sp_executesql @sqlStr,N'@rowNumOut int output',@rowNumOut = @RowNum output;
select @RowNum;
9.将数据库中的自增列重置1开始
a)set identity_insert 表名 on
插入一条数据:insert into 表名(列名,....) values (值,.....) 注意这条sql语句一个部分都不能少。
b)dbcc checkident('表名',reseed,0) 注意只有定义了自增的表才能用这个重置1
10.查询给定表中的自增列
SELECT COUNT(*) FROM INFORMATION_SCHEMA.columns WHERE TABLE_NAME='Orders' AND (COLUMNPROPERTY(OBJECT_ID('Orders'),COLUMN_NAME,'IsIdentity')=1)
11.查询给定表中的主键列
select name from sysobjects where parent_obj= OBJECT_ID(N'Orders') and xtype = 'PK'
12.查询给定表中的当前标识值
dbcc checkident('t1',noreseed)