有用的SQL 陳述式(轉)
1.WAITFOR
--WAITFOR
--例 等待1 小時2 分零3 秒後才執行SELECT 語句
waitfor delay '01:02:03'
select * from employee
--例 等到晚上11 點零8 分後才執行SELECT 語句
waitfor time '23:08:00'
select * from employee
2.查看sqlserver版本
select serverproperty('productversion'),serverproperty('productlevel'),serverproperty('edition')
3.在SQLSERVER,簡單的組合sp_spaceused和sp_MSforeachtable這兩個預存程序,可以方便的統計出使用者資料表的大小,包括記錄總數和空間佔用情況,非常實用,在SqlServer2K和SqlServer2005中都測試通過。
/**//**//**//*
1. exec sp_spaceused '表名' (SQL統計資料,大量事務操作後可能不準)
2. exec sp_spaceused '表名', true (更新表的空間大小,準確的表空大小,但可能會花些統計時間)
3. exec sp_spaceused (資料庫大小查詢)
4. exec sp_MSforeachtable "exec sp_spaceused '?'" (所有使用者資料表空間表小,SQL統計資料,,大量事務操作後可能不準)
5. exec sp_MSforeachtable "exec sp_spaceused '?',true" (所有使用者資料表空間表小,大資料庫慎用)
*/
create table #t(name varchar(255), rows bigint, reserved varchar(20), data varchar(20), index_size varchar(20), unused varchar(20))
exec sp_MSforeachtable "insert into #t exec sp_spaceused '?'"
select * from #t
drop table #t
4.從表中隨即抽取N個資料
SELECT TOP 10 *
FROM LargeTable
ORDER BY NEWID()
5.SQL語句附加資料庫
use master
EXEC sp_attach_db @dbname = N'pubs',
@filename1 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf',
@filename2 = N'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs_log.ldf'
6.資料庫表間資料複製
--1.表結構相同的表,且在同一資料庫(如,table1,table2)
Sql :insert into table1 select * from table2 (完全複製)
insert into table1 select distinct * from table2(不複製重複紀錄)
insert into table1 select top 5 * from table2 (前五條紀錄)
--2.不在同一資料庫中(如,db1 table1,db2 table2)
sql: insert into db1..table1 select * from db2..table2 (完全複製)
insert into db1..table1 select distinct * from db2table2(不複製重複紀錄)
insert into tdb1..able1 select top 5 * from db2table2 (前五條紀錄)
7.按姓氏筆畫排序
Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as //****************************************
by:
Amen cnblogs部落格 Sina部落格
//****************************************