【iinsnian】SQL 資料庫開發一些精典的程式碼

iDotNetSpace發表於2008-06-05

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

2.資料庫加密:
select 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 * FromWhere ID in (Select Top M ID From 表) Order by ID Desc
----------------------------------
N到結尾記錄
Select Top N * FromOrder 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 = '表名'

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-332387/,如需轉載,請註明出處,否則將追究法律責任。

相關文章