|
1. UPDATE 语句
不带别名的 UPDATE 语句的语法如下:
- update <table name》
- set column = <column> [, column = <column>]
- [where <restrictive condition> ]
复制代码
如果 update 语句的 where 条件较复杂,或者要更新的值来源于另外一个表时,可以使用带有别名的 update 语句。
带有别名的 update 语句语法如下:
- update A
- set A.Column1 = B.Column1, A.Column2 = B.Column2, A.Column3 = B.Column3
- from A, B
- where A.Column = B.Column
复制代码
2. 使用 SELECT 语句创建表
SQLSERVER 中的语法是:
- select * into <dst table name>
- from <src table name>
复制代码
3. DELETE 语句
SQL Server 不带别名的 DELETE 语句的语法是
- delete from <table name>
- [ where <restrictive condition> ]
复制代码
带有别名的 delete 语句的语法如下:
- delete <alias>
- from <table name> <alias>
- where <restrictive condition>
复制代码
4. 锁表查询及解锁
- select request_session_id as spid, OBJECT_NAME(resource_associated_entity_id) as tableName
- from sys.dm_tran_locks
- where resource_type='OBJECT'
-
- ---或者
-
- select spid, blocked, loginame, last_batch, status, cmd, hostname, program_name
- from sysprocesses
- where spid in
- ( select blocked from sysprocesses where blocked <> 0 ) or (blocked <>0)
-
- --kill spid
复制代码
5. 查询包含给定文本的存储过程
- select o.name, o.id,c.text
- from sysobjects o,syscomments c
- where o.id=c.id and c.text like '%Test%'
复制代码
6. 使用 checksum 函数比较两条数据是否完全相同
返回在表的一行上或在表达式列表上计算的校验和值。CHECKSUM旨在用于构建散列索引。
句法:
- CHECKSUM ( * | expression [ ,...n ] )
复制代码
参数
指定计算在表格的所有列上。如果任何列是不可比的数据类型,CHECKSUM将返回一个错误。不可比较的数据类型是文本,ntext,图像,XML和游标,还有以任何一种前述类型作为其基本类型的sql_variant。
- -- 字段顺序不同也会导致最终返回的值不同
- select checksum('a', 'b', 'c') -- 34400
- select checksum('c', 'a', 'b') -- 39023
复制代码
7. SYSPROCESSES 查看数据库连接
- SELECT at.text,sp.* FROM[Master].[dbo].[SYSPROCESSES] sp
- CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS at
复制代码
以上语句作用:
查询客户端进程PID 为3616的程序,与此数据库的所有的连接数,每个连接最后执行的语句以及每个连接的详细信息。
进程PID 可以在任务管理器中进行查看。
连接最后执行的语句是text列的详细信息。
每个连接的详细信息在sp.*中详细说明。 |
|