锘??xml version="1.0" encoding="utf-8" standalone="yes"?> --綆鍗曞垎孌佃鍙?/font>
]]>/**//*鏁告摎搴倷浠藉瓨鍎查亷紼?/span>*/
/**//*鏀寔寰炴湇鍕欏櫒鍌欎喚鏁告摎鑷蟲湰鍦版鍣ㄤ笂*/
--
CREATE PROCEDURE up_dbbackup
(
@backup_db_name VARCHAR(128),
@filename VARCHAR(128), /**//*鍌欎喚璺緫+鏂囦歡鍚?/span>*/
@flag VARCHAR(60) OUTPUT
)
AS
SET NOCOUNT ON
DECLARE @sql NVARCHAR(4000),@par NVARCHAR(1000)
IF NOT EXISTS(
SELECT * FROM master..sysdatabases
WHERE name=@backup_db_name
)
BEGIN
SELECT @flag='鏁告摎搴?/span>'+@backup_db_name+'涓嶅瓨鍦?'
RETURN
END
ELSE
BEGIN
IF RIGHT(@filename,1)<>'\' AND CHARINDEX('\',@filename)<>0
BEGIN
/**//*瀹氱京妯欒獙*/
DECLARE @lFlag INT
EXECUTE @lFlag=master..xp_cmdshell 'DIR Z:'
IF @lFlag<>0
BEGIN
/**//* 鍦ㄥ鎴舵192.168.2.45涓婂緩绔嬩竴鍊嬪畬鍏ㄥ叡浜洰閷刣b,鎸囧畾涓鍊嬬敤鎴跺悕鍜屽瘑紕?Win98鐢ㄦ埗涓嶉渶瑕佺敤鎴跺悕鍜屽瘑紕?/span>*/
EXECUTE @lFlag=master..xp_cmdshell 'NET USE Z: \\192.168.2.45\db$ test /user:ca.atc\test'
IF @lFlag<>0
BEGIN
SELECT @flag='鏈嶅嫏鍣ㄥ壍寤虹洰閷勫け鏁?'
RETURN
END
END
SELECT @par='@filename VARCHAR(1000)'
SELECT @sql='BACKUP DATABASE '+@backup_db_name+' TO DISK=@filename WITH INIT'
EXECUTE sp_executesql @sql,@par,@filename
EXECUTE master..xp_cmdshell 'NET USE Z: /DELETE'
SELECT @flag='鏁告摎搴?/span>'+@backup_db_name+'鍌欎喚鎴愬姛!'
RETURN
END
ELSE
BEGIN
SELECT @flag='鏁告摎搴倷浠借礬寰戦尟瑾?'
RETURN
END
END
**浠ヤ笂閬庣▼鍦⊿QL SERVER涓嬫脯瑭﹂氶亷
]]> declare @b varchar(20)
select @b='a-b-c-d-e'
--澶勭悊
declare @sql varchar(4000)
select @sql= 'select '''+replace(@b,'-',''' union all select ''') ''''
exec(@sql)
create function f_split(@SourceSql varchar(8000),@StrSeprate varchar(10))
returns @temp table(a varchar(100))
as
begin
declare @i int
set @SourceSql=rtrim(ltrim(@SourceSql))
set @i=charindex(@StrSeprate,@SourceSql)
while @i>=1
begin
insert @temp values(left(@SourceSql,@i-1))
set @SourceSql=substring(@SourceSql,@i+1,len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql<>'\'
insert @temp values(@SourceSql)
return
end
--鐢ㄦ硶:
select * from dbo.f_split('A:B:C:D:E',':')
--杈撳嚭
a
1 A
2 B
3 C
4 D
5 E
create procedure splitter
@str varchar(1024)
as
declare @s varchar(1024)
declare @i int
set @s='select message from T_QQMsgLog where 1=1'
set @i=1
select RoleID from tmpTable group by RoleID HAVING (count(*) > 1)
select distinct * from tmpTable
--鍒犻櫎閲嶅璁板綍
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
]]>
@uid varchar(16),@pwd varchar(16)
as
declare @encode varbinary(255)
set @encode=convert(varbinary(255),pwdencrypt(@pwd))
if exists(select uid from [user] where uid=@uid)
update [user] set pwd=@encode where uid=@uid
else
insert into [user](uid,pwd) values(@uid,@encode)
go
--鍒ゆ柇瀵嗙爜鏄惁姝g‘
create proc checkid
@uid varchar(16),@pwd varchar(16)
as
declare @encode varbinary(255)
select @encode=pwd from [user] where uid=@uid
if pwdcompare(@pwd,@encode,0)='1'
select '鐧誨綍鎴愬姛'
else
select '鐢ㄦ埛鍚嶆垨瀵嗙爜閿?
GO
--璋冪敤榪囩▼
exec modifypwd 'admin','123456'
exec checkid 'admin','123456'
--榪斿洖闅忔満瀛楃涓茬殑榪囩▼
create proc randomchar
@times int,@result varchar(255) out
as
declare @k int
declare @r int
declare @i int
declare @s varchar(255)
set @i=0
set @s=''
while @i<@times
begin
set @k=rand()*61
if @k<26
set @r=@k+97
else if @k>51
set @r=@k-4
else
set @r=@k 39
set @s=@s char(@r)
set @i=@i 1
end
set @result=@s
--璋冪敤
declare @s varchar(255)
exec randomchar 20,@s out
]]>
鍋囪鏈夊紶瀛︾敓鎴愮嘩琛?CJ)濡備笅
[濮撳悕] [瀛︾] [鎴愮嘩]
寮犱笁 璇枃 80
寮犱笁 鏁板 90
寮犱笁 鐗╃悊 85
鏉庡洓 璇枃 85
鏉庡洓 鏁板 92
鏉庡洓 鐗╃悊 82
鐜嬩簲 鏁板 60
鎯沖彉鎴?nbsp;
[濮撳悕] [璇枃] [鏁板] [鐗╃悊]
寮犱笁 80 90 85
鏉庡洓 85 92 82
鐜嬩簲 null 60 null
declare @sql varchar(4000)
set @sql = 'select 濮撳悕'
select @sql = @sql + ',sum(case 瀛︾ when ''' 瀛︾ ''' then 鎴愮嘩 end) as ' 瀛︾
from (select distinct 瀛︾ from CJ) as a
set @sql = @sql ' from cj group by 濮撳悕'
exec(@sql)
2. 琛屽垪杞崲--鍚堝茍
鏈夎〃A,
id pid
1 1
1 2
1 3
2 1
2 2
3 1
濡備綍鍖栨垚琛˙:
id pid
1 1,2,3
2 1,2
3 1
鍒涘緩涓涓悎騫剁殑鍑芥暟
create function fmerg(@id int)
returns varchar(8000)
as
begin
declare @str varchar(8000)
set @str=''
select @str=@str ',' cast(pid as varchar) from 琛ˋ where id=@id
set @str=right(@str,len(@str)-1)
return(@str)
end
go
--璋冪敤鑷畾涔夊嚱鏁板緱鍒扮粨鏋?br>select distinct id,dbo.fmerg(id) from 琛ˋ
]]>
SQL: select * into b from a where 1<>1
鈽呰鏄庯細鎷瘋礉琛?鎷瘋礉鏁版嵁,婧愯〃鍚嶏細a 鐩爣琛ㄥ悕錛歜)
SQL: insert into b(a, b, c) select d,e,f from b;
鈽呰鏄庯細鏄劇ず鏂囩珷銆佹彁浜や漢鍜屾渶鍚庡洖澶嶆椂闂?nbsp;
SQL: select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
鈽呰鏄庯細澶栬繛鎺ユ煡璇?琛ㄥ悕1錛歛 琛ㄥ悕2錛歜)
SQL: select a.f1, a.f2, a.f3, b.f3, b.f4, b.f5 from a left OUT JOIN b ON a.f1 = b.f3 (宸﹁繛鎺?
SQL: select a.f1, b.f2 from a FULL OUT JOIN b ON a.f1 = b.f1 (鍏ㄨ繛鎺?
鈽呰鏄庯細鏃ョ▼瀹夋帓鎻愬墠浜斿垎閽熸彁閱?nbsp;
SQL: select * from 鏃ョ▼瀹夋帓 where datediff('minute',f寮濮嬫椂闂?getdate())>5
鈽呰鏄庯細涓ゅ紶鍏寵仈琛紝鍒犻櫎涓昏〃涓凡緇忓湪鍓〃涓病鏈夌殑淇℃伅
SQL:
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )
鈽呰鏄庯細鍥涜〃鑱旀煡闂錛?nbsp;
select f1, (select min(f)-1 from t where f>f1) as f2 from
(select f 1 as f1 from t where f 1 not in (select f from t) and f <(select max(f) from t)) as cc
鈽呰鏄庯細--
SQL:
select A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
from TABLE1,
(select X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
from (select NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
from TABLE2
where TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,
(select NUM, UPD_DATE, STOCK_ONHAND
from TABLE2
where TO_CHAR(UPD_DATE,'YYYY/MM') =
TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') || '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y,
where X.NUM = Y.NUM 錛?錛?nbsp;
and X.INBOUND_QTY NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B
where A.NUM = B.NUM
鈽呰鏄庯細--
SQL:
select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 緋誨悕縐?'"&strdepartmentname&"' and 涓撲笟鍚嶇О='"&strprofessionname&"' order by 鎬у埆,鐢熸簮鍦?楂樿冩繪垚緇?nbsp;
鈽呰鏄庯細
浠庢暟鎹簱涓幓涓騫寸殑鍚勫崟浣嶇數(shù)璇濊垂緇熻(鐢?shù)璇濊垂瀹氶璐虹數(shù)鍖栬偉娓呭崟涓や釜琛ㄦ潵婧愬Q?nbsp;
SQL:
select a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') as telyear,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) as JAN,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) as FRI,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) as MAR,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) as APR,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) as MAY,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) as JUE,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) as JUL,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) as AGU,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) as SEP,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) as OCT,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) as NOV,
sum(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) as DEC
from (select a.userper, a.tel, a.standfee, b.telfeedate, b.factration
from TELFEESTAND a, TELFEE b
where a.tel = b.telfax) a
group by a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')
set IDENTITY_INSERT Table1 ON
declare @i int
set @i = 0
update Table1 set @i = @i 1,Field1 = @i
set IDENTITY_INSERT Table1 off
2.鎸夋垚緇╂帓鍚嶆
update 鎴愮嘩琛?br>set a.鍚嶆 = (
select count(*) 1
from 鎴愮嘩琛?b
where a.鎬繪垚緇?< b.鎬繪垚緇?br>)
from 鎴愮嘩琛?a
3.鏌ヨ澶栭儴鏁版嵁搴?br>select a.*
from OpenRowSet('Microsoft.Jet.OLEDB.4.0','c:\test.mdb';'admin';'',Table1) a
4.鏌ヨExcel鏂囦歡
select *
from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\test.xls";user id=Admin;Password=;Extended properties=Excel 8.0')...Sheet1$
5.鍦ㄦ煡璇腑鎸囧畾鎺掑簭瑙勫垯
select * from Table1 order by Field1 COLLATE Chinese_PRC_BIN
涓轟粈涔堣鎸囧畾鎺掑簭瑙勫垯鍛?鍙傝:
http://www.zahui.com/html/8/15480.htm
渚?媯鏌ユ暟鎹簱涓殑Pub_Users琛ㄤ腑鏄惁瀛樺湪鎸囧畾鐨勭敤鎴?
select count(*) from Pub_Users where [UserName]='admin' and [PassWord]='aaa' COLLATE Chinese_PRC_BIN
榛樿姣旇緝鏄笉鍖哄垎澶у皬鍐欑殑,濡傛灉涓嶅姞COLLATE Chinese_PRC_BIN,閭d箞瀵嗙爜aaa涓嶢AA鏄瓑鏁堢殑,榪欏綋鐒朵笌瀹為檯涓嶇.娉ㄦ剰鐨勬槸,姣忎釜鏉′歡閮借鎸囧畾鎺掑簭瑙勫垯,涓婁緥涓敤鎴峰悕灝變笉鍖哄垎澶у皬鍐?
6.order by鐨勪竴涓皬鎶宸?br>order by鍙互鎸囧畾鍒楀簭鑰屼笉鐢ㄦ寚瀹氬垪鍚?鍦ㄤ笅闈㈢殑渚嬪瓙閲岃鏄庡畠鐨勭敤澶?娉ㄦ剰,絎笁鍒楁湭鎸囧畾鍒悕)
select a.id,a.Name,(select count(*) from TableB b where a.id=b.PID) from TableA a order by 3
7.SQL綆鍗曞垎欏電殑瀛樺偍榪囩▼ 鈼嗗父鐢ㄢ梿鈼嗗父鐢ㄢ梿鈼嗗父鐢ㄢ梿鈼嗗父鐢ㄢ梿鈼嗗父鐢ㄢ梿
/*
create proc recordpages
@nowpage int,
@per int
as
declare @s nvarchar(255)
if @nowpage<1 set @nowpage=1
if @per<1 set @per=1
set @s=N'declare @k int select top ' convert(varchar(10),(@nowpage-1)*@per) ' @k=id from table1
select top ' convert(varchar(10),@per) ' * from table1 where id>@k'
exec sp_executesql @s
go
*/
exec recordpages 3,10
8錛氬緱鍒拌〃涓渶灝忕殑鏈嬌鐢ㄧ殑id鍙?/p>
SQL: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
9.寰楀埌琛ㄤ腑鑷姩緙栧彿鍒楃簿蹇冪瓥鍒掑彿鐨勮搗濮嬩綅緗?br>
SQL:
select (case when exists(select * from Handle b where b.HandleID = 1) then MIN(HandleID) + 1 else 1 end) as HandleID
from Handle
where NOT HandleID in (select a.HandleID - 1 from Handle a)