1. sp_helptext是显示规则,默认值,未加密的存储过程,用户定义函数,触发器或视图的文本。
2。SQL查询某字段数据所在的表
选择a.name作为表名从sysobjects离开加入syscolumns b a.id=b。id b.name=& # 39;字段名& # 39;
1祝辞根据已知字段查询表:
从sysobjects连接选择a.name syscolumns b a.id=b。id b.name=& # 39;字段名& # 39;
2的在查询符合此字段值的记录:
select * from表名,字段名=字段值(表名是步骤一查询出来的名称)
3。获取当前数据库中的所有用户表
选择名字从sysobjects xtype=& # 39; u # 39;和status>=0
4。列出数据库里所有的表名
选择名称从sysobjects类型=& # 39;u # 39;
5。获取某一个表的所有字段
选择名称从syscolumns id=object_id(& # 39;表名& # 39;)
中选择名称从syscolumns id(选择id从sysobjects类型=& # 39;u # 39;和name=& # 39;表名& # 39;)
两种方式的效果相同
6。查询某一个表的字段和数据类型
选择column_name data_type information_schema。列
table_name=& # 39;表名& # 39;
7。取回表中字段:
声明@ list varchar (1000),
@sql nvarchar (1000)
选择@ list=@ list + & # 39;, & # 39; + b.name从sysobjects syscolumns b a.id=b。id和a.name=& # 39;表一个# 39;
设置@sql=& # 39;选择& # 39;+右(@ list, len (@ list) 1) + & # 39;从表一个# 39;
exec (@sql)
8。查看与某一个表相关的视图,存储过程,函数
选择一个。*从sysobjects syscomments b, a。id=b。id和b。文本像& # 39;%表名% & # 39;
9。查看当前数据库中所有视图
选择名称作为视图从sysobjects xtype=& # 39; v # 39;
10。查看当前数据库中所有存储过程
选择名称作为存储过程名称从sysobjects xtype=& # 39; p # 39;
11。查询用户创建的所有数据库
select *从主. .sysdatabases D sid不是在(从主选择sid . .syslogins名称=& # 39;sa # 39;)
或者
选择dbid,名称DB_NAME从主. .sysdatabases sid & lt;比;0 x01
12.1=1, 1=2的使用,在SQL语句组合时用的较多
“1=1”是表示选择全部,,“1=2”全部不选,
如:
如果@strWhere !=& # 39; & # 39;
开始设置@strSQL=& # 39; select count ()总从[& # 39;+ @tblName + & # 39;] & # 39;+ @strWhere
结束其他
开始设置@strSQL=& # 39; select count ()总从[& # 39;+ @tblName + & # 39;] & # 39;
结束我们可以直接写成
错误!未找到目录项。
设置@strSQL=& # 39; select count(*)总从[& # 39;+ @tblName + & # 39;], 1=1安定& # 39;+ @strWhere
13。包括所有在为多中但不表b在和TableC中的行并消除所有重复行而派生出一个结果表
(选择一个从为多)除了表b(选择一个),除了从TableC(选择一个)
14。删除重复记录
1),删除从表id不是(从表名group by col1选择马克斯(id)、col2,…)
2),选择不同的到临时表名
删除从表名
插入表从临时选择
评价:这种操作牵连大量的数据的移动,这种做法不适合大容量但数据操作
3),例如:在一个外部表中导入数据,由于某些原因第一次只导入了一部分,但很难判断具体位置,这样只有在下一次全部导入,这样也就产生好多重复的字段,怎样删除重复字段
alter table表名
——添加一个自增列
添加,column_b int身份(1,1)
删除从表column_b不在(
选择马克斯(column_b),从表组由column1 column2,…)
改变表的表列column_b下降
15。SQL两表之间:根据一个表的字段更新另一个表的字段
- <李>写法轻松,更新效率高:李>
更新table1
设置field1=table2.field1,
field2=表二。从表二field2
table1.id=表二。李id
- <>常规方式,种写法相当于一个加入,以外面的地方为更新条数,如果不加,就是所有记录李>
更新table1
设置field1=(选择从表1 field1 table2.id=table1.id)
表1。id(条件)
16。比较A、B表是否相等:
如果(选择checksum_agg (binary_checksum(*))从)
<代码>(选择checksum_agg (binary_checksum(*))从B) 代码>
打印& # 39;相等& # 39;其他
打印& # 39;不相等& # 39;
17。请求其空间使用信息的表,索引视图或队列的限定或非限定名称
exec sp_spaceused & # 39;表# 39;
18岁。查看硬盘分区:
执行主人. . xp_fixeddrives