以文本方式查看主题

-  智睿软件_技术交流论坛  (http://zhirui.net/bbs/index.asp)
--  服务器技术  (http://zhirui.net/bbs/list.asp?boardid=34)
----  [推荐]MS-SQL数据库开发常用汇总  (http://zhirui.net/bbs/dispbbs.asp?boardid=34&id=3386)

--  作者:zhirui
--  发布时间:2014-04-01 20:27:25
--  [推荐]MS-SQL数据库开发常用汇总
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-N * 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