MS-SQL数据库开发—精典

转自:http://www.souzz.net/html/database/MSSQL/10564.html

1 .按姓氏笔画排序:
Select   *   From  TableName  Order   By  CustomerName Collate Chinese_PRC_Stroke_ci_as 

2 .数据库加密:
select  encrypt( ' 原始密码 ' )
select  pwdencrypt( ' 原始密码 ' )
select  pwdcompare( ' 原始密码 ' , ' 加密后密码 ' =   1 -- 相同;否则不相同 encrypt('原始密码')
select  pwdencrypt( ' 原始密码 ' )
select  pwdcompare( ' 原始密码 ' , ' 加密后密码 ' =   1 -- 相同;否则不相同

3 .取回表中字段:
declare   @list   varchar ( 1000 ), @sql   nvarchar ( 1000
select   @list = @list + ' , ' + b.name  from  sysobjects a,syscolumns b  where  a.id = b.id  and  a.name = ' 表A '
set   @sql = ' select  ' +right ( @list , len ( @list ) - 1 ) + '  from 表A '  
exec  ( @sql )

4 .查看硬盘分区:
EXEC  master..xp_fixeddrives

5 .比较A,B表是否相等:
if  ( select  checksum_agg(binary_checksum( * ))  from  A)
 
=
 (
select  checksum_agg(binary_checksum( * ))  from  B)
print   ' 相等 '
else
print   ' 不相等 '

6 .杀掉所有的事件探察器进程:
DECLARE  hcforeach  CURSOR  GLOBAL  FOR   SELECT   ' kill  ' + RTRIM (spid)  FROM  master.dbo.sysprocesses
WHERE  program_name  IN ( ' SQL profiler ' ,N ' SQL 事件探查器 ' )
EXEC  sp_msforeach_worker  ' ? '

7 .记录搜索:
开头到N条记录
Select   Top  N  *   From  表
-- -----------------------------
N到M条记录(要有主索引ID)
Select   Top  M - *   From  表  Where  ID  in  ( Select   Top  M ID  From  表)  Order   by  ID  Desc
-- --------------------------------
N到结尾记录
Select   Top  N  *   From  表  Order   by  ID  Desc

8 .如何修改数据库的名称:
sp_renamedb 
' old_name ' ' new_name '  

9 :获取当前数据库中的所有用户表
select  Name  from  sysobjects  where  xtype = ' u '   and  status >= 0

10 :获取某一个表的所有字段
select  name  from  syscolumns  where  id = object_id ( ' 表名 ' )

11 :查看与某一个表相关的视图、存储过程、函数
select  a. *   from  sysobjects a, syscomments b  where  a.id  =  b.id  and  b. text   like   ' %表名% '

12 :查看当前数据库中所有存储过程
select  name  as  存储过程名称  from  sysobjects  where  xtype = ' P '

13 :查询用户创建的所有数据库
select   *   from  master..sysdatabases D  where  sid  not   in ( select  sid  from  master..syslogins  where  name = ' sa ' )
或者
select  dbid, name  AS   DB_NAME   from  master..sysdatabases  where  sid  <>   0x01

14 :查询某一个表的字段和数据类型
select  column_name,data_type  from  information_schema.columns
where  table_name  =   ' 表名 '  

[ n ] . [ 标题 ] :
Select   *   From  TableName  Order   By  CustomerName 

[ n ] . [ 标题 ] :
Select   *   From  TableName  Order   By  CustomerName

 


你可能感兴趣的:(sql)