SQL Server常用语句

  

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

  

SQL Server常用语句