亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > 綜合 > 正文

整理的一些數據庫不容易想到的SQL語句實例一

2024-07-21 02:47:28
字體:
來源:轉載
供稿:網友
整理的一些數據庫不容易想到的SQL語句實例一

1、行轉列SQL語句

SELECT  *FROM    ( SELECT    [FID] ,                    [Weeks] ,                    [Qty]          FROM      dbo.TempTable where Weeks is not null         ) p PIVOT( SUM([Qty]) FOR [Weeks] IN ([1],[2],[3],[4],[5],[6])) AS pvt

2、游標

declare P_PRoduct_Main CURSOR FAST_FORWARD FORSELECT PID FROM [表名] order by PID-- 打開游標.   OPEN P_Product_Main   --填充數據.   FETCH NEXT FROM P_Product_Main INTO @PID   --假如檢索到了數據,才處理.   WHILE @@fetch_status = 0   begin      print @PID;      end   fetch next from P_Product_Main into @PID;   end   -- 關閉游標   CLOSE P_Product_Main   --釋放游標.   DEALLOCATE P_Product_Main

3、查看當前進程,或死鎖進程,并能自動殺掉死進程,因為是針對死的,所以如果有死鎖進程,只能查看死鎖進程,當然,你可以通過參數控制,不管有沒有死鎖,都只查看死鎖進程

create proc [dbo].[sp_lock2]@kill_lock_spid bit=1,  --是否殺掉死鎖的進程,1 殺掉, 0 僅顯示@show_spid_if_nolock bit=1 --如果沒有死鎖的進程,是否顯示正常進程信息,1 顯示,0 不顯示asdeclare @count int,@s nvarchar(1000),@i intselect id=identity(int,1,1),標志, 進程ID=spid,線程ID=kpid,塊進程ID=blocked,數據庫ID=dbid, 數據庫名=db_name(dbid),用戶ID=uid,用戶名=loginame,累計CPU時間=cpu, 登陸時間=login_time,打開事務數=open_tran, 進程狀態=status, 工作站名=hostname,應用程序名=program_name,工作站進程ID=hostprocess, 域名=nt_domain,網卡地址=net_addressinto #t from( select 標志='死鎖的進程',  spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran,  status,hostname,program_name,hostprocess,nt_domain,net_address,  s1=a.spid,s2=0 from master..sysprocesses a join (  select blocked from master..sysprocesses group by blocked  )b on a.spid=b.blocked where a.blocked=0 union all select '|_犧牲品_>',  spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran,  status,hostname,program_name,hostprocess,nt_domain,net_address,  s1=blocked,s2=1 from master..sysprocesses a where blocked<>0)a order by s1,s2 select @count=@@rowcount,@i=1 if @count=0 and @show_spid_if_nolock=1begin insert #t select 標志='正常的進程',  spid,kpid,blocked,dbid,db_name(dbid),uid,loginame,cpu,login_time,  open_tran,status,hostname,program_name,hostprocess,nt_domain,net_address from master..sysprocesses set @count=@@rowcountend if @count>0begin create table #t1(id int identity(1,1),a nvarchar(30),b Int,EventInfo nvarchar(255)) if @kill_lock_spid=1 begin  declare @spid varchar(10),@標志 varchar(10)  while @i<=@count  begin   select @spid=進程ID,@標志=標志 from #t where id=@i   insert #t1 exec('dbcc inputbuffer('+@spid+')')   if @標志='死鎖的進程' exec('kill '+@spid)   set @i=@i+1  end end else  while @i<=@count  begin   select @s='dbcc inputbuffer('+cast(進程ID as varchar)+')' from #t where id=@i   insert #t1 exec(@s)   set @i=@i+1  end select a.*,進程的SQL語句=b.EventInfo from #t a join #t1 b on a.id=b.idend
create Procedure [dbo].[sp_who_lock]asbegindeclare @spid int,@bl int,@intTransactionCountOnEntry int,        @intRowcount int,        @intCountProperties int,        @intCounter intset nocount oncreate table #tmp_lock_who (id int identity(1,1),spid smallint,bl smallint)IF @@ERROR<>0 RETURN @@ERRORinsert into #tmp_lock_who(spid,bl) select  0 ,blocked  from (select * from master.dbo.sysprocesses where  blocked>0 ) a   where not exists(select * from (select * from master.dbo.sysprocesses where  blocked>0 ) b   where a.blocked=spid)  union select spid,blocked from master.dbo.sysprocesses where  blocked>0 IF @@ERROR<>0 RETURN @@ERROR -- 找到臨時表的記錄數select @intCountProperties = Count(*),@intCounter = 1from #tmp_lock_whoIF @@ERROR<>0 RETURN @@ERRORif@intCountProperties=0select '現在沒有阻塞和死鎖信息' as message -- 循環開始while @intCounter <= @intCountPropertiesbegin-- 取第一條記錄select @spid = spid,@bl = blfrom #tmp_lock_who where Id = @intCounter begin if @spid =0             select '引起數據庫死鎖的是: '+ CAST(@bl AS VARCHAR(10)) + '進程號,其執行的SQL語法如下' else            select '進程號SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '進程號SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其當前進程執行的SQL語法如下' DBCC INPUTBUFFER (@bl )end -- 循環指針下移set @intCounter = @intCounter + 1end  drop table #tmp_lock_whoset nocount offreturn 0end

4、 臨時表

select top(100) *into #temp_tablefrom WOTable  as awhere StartTime=@startdate and not exists (select ID from temp_WOCode where ID=a.ID and Status=0) and [Status]=0 and CurrentStatus<>999update a set a.BurdeningStatus=20,a.BurdeningDateTime=GETDATE(),a.BurdeningPerson=@userid  from   WOTable    as a  where exists (select ID from  #temp_table where ID=a.ID and Status=0)

5、事務

begin tran  --開始事務BEGIN TRY        if @@trancount <>0beginprint 'has data, commit tran'commit tranendEND TRYBEGIN CATCHif @@trancount <>0beginrollback tranendEND CATCH

6、索引

//普通索引CREATE INDEX <索引的名字> ON tablename (列名);//唯一索引CREATE UNIQUE INDEX <索引的名字> ON tablename (列名);drop index <索引的名字>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲xxxxx| 色婷婷av一区二区三区久久| 日本午夜精品理论片a级appf发布| 欧美国产日韩中文字幕在线| 亚洲成人激情图| 国产精品久久久久久久久久新婚| 成人久久精品视频| 欧美成人在线网站| 精品国产一区二区三区四区在线观看| 国产69精品久久久久9999| 国产suv精品一区二区三区88区| 国产亚洲欧美另类中文| 中国china体内裑精亚洲片| 福利视频一区二区| 亚洲第一精品福利| 色噜噜狠狠狠综合曰曰曰| 国产午夜精品全部视频在线播放| 欧美日韩美女视频| 超薄丝袜一区二区| 久久亚洲成人精品| www高清在线视频日韩欧美| 国外成人免费在线播放| 亚洲欧美自拍一区| 亚洲天堂av图片| 亚洲欧洲在线播放| 国产精品一区二区久久久久| 精品性高朝久久久久久久| 91精品国产777在线观看| 国产一区在线播放| 亚洲男子天堂网| 日韩av在线精品| 精品久久久视频| 97avcom| 亚洲免费视频观看| 国产精品久久一区主播| 97久久精品国产| 欧美大尺度激情区在线播放| 欧美精品videossex性护士| 中文字幕亚洲一区在线观看| 精品久久久久国产| 国产美女直播视频一区| 欧美日韩免费看| 久久男人av资源网站| 韩国19禁主播vip福利视频| 午夜精品福利在线观看| 欧美午夜www高清视频| 午夜美女久久久久爽久久| 欧美午夜xxx| 久久久久日韩精品久久久男男| 国产区亚洲区欧美区| 亚洲成av人乱码色午夜| 日韩精品免费在线播放| 裸体女人亚洲精品一区| 欧美大片在线免费观看| 日韩在线观看网址| 日韩美女av在线| 国产精品夜色7777狼人| 成人在线免费观看视视频| 精品香蕉在线观看视频一| 韩国一区二区电影| 亚洲国产天堂网精品网站| 亚洲国产精久久久久久| 亚洲二区中文字幕| 欧美亚洲另类在线| 欧美肥老太性生活视频| 精品无人区乱码1区2区3区在线| 亚洲国产精品专区久久| 国产欧美在线看| 亚洲2020天天堂在线观看| 国产精品久久久久久av下载红粉| 91久久久久久久一区二区| 中文字幕亚洲欧美日韩2019| 国产精品免费一区二区三区都可以| 日韩欧美有码在线| 91中文字幕一区| 性欧美xxxx交| 亚洲精品成a人在线观看| 久久精品人人做人人爽| 国产日韩av在线播放| 久久久久久久久久久久久久久久久久av| 日韩亚洲国产中文字幕| 久久免费视频网| 青青青国产精品一区二区| 欧美极品少妇与黑人| 欧美激情免费视频| 久久精品国产一区二区三区| 欧美黄色片免费观看| 91情侣偷在线精品国产| 亚洲久久久久久久久久久| 亚洲色图美腿丝袜| 精品国产网站地址| 久久精品久久久久久| 成人黄色av免费在线观看| 久久久久久久久网站| 国产美女精彩久久| 久久亚洲精品一区二区| 国产综合久久久久久| 午夜精品一区二区三区在线| 国内精品一区二区三区| 亚洲的天堂在线中文字幕| 欧美激情中文网| xxxxxxxxx欧美| 亚洲人成网站999久久久综合| 国产a级全部精品| 久久久女人电视剧免费播放下载| 精品无码久久久久久国产| 久久影视电视剧免费网站清宫辞电视| 免费91在线视频| 精品国产网站地址| 欧美日韩激情小视频| 国产精品一区二区三区成人| 日韩久久精品电影| 日韩精品久久久久久福利| 668精品在线视频| 亚洲午夜未满十八勿入免费观看全集| 亚洲第一中文字幕在线观看| 亚洲国产精品久久精品怡红院| 欧美成人手机在线| 国产免费一区视频观看免费| 国产aⅴ夜夜欢一区二区三区| 国产精品美腿一区在线看| 欧美精品久久久久久久免费观看| 日韩欧中文字幕| 国产精品精品一区二区三区午夜版| 国产精品美女主播在线观看纯欲| 欧美丰满老妇厨房牲生活| 中文字幕欧美亚洲| 91久久久精品| 在线亚洲午夜片av大片| 日本精品视频在线观看| 国产精品老女人精品视频| 亚洲三级 欧美三级| 国产精品劲爆视频| 日韩毛片在线观看| 欧美中文字幕在线播放| 国产亚洲美女久久| 精品国产区一区二区三区在线观看| 欧美在线一区二区视频| 91精品国产一区| 欧美日韩久久久久| 久久久久久久香蕉网| 精品中文字幕在线| 欧美激情一区二区三级高清视频| 国产精品第七影院| 欧美巨乳美女视频| 国产精品香蕉在线观看| 欧洲中文字幕国产精品| 国产精品成av人在线视午夜片| 欧美视频免费在线| 久久久免费精品| 国产精品日日摸夜夜添夜夜av| 国内精品久久久久久久| 国产小视频91| 日韩经典一区二区三区| 在线精品91av| 久久精品国产精品亚洲| 亚洲午夜精品久久久久久久久久久久| 九九九热精品免费视频观看网站| 91国产中文字幕| 日本精品久久中文字幕佐佐木| 欧美成人黄色小视频| 98午夜经典影视| 日韩中文字幕国产精品| 亚洲大胆美女视频|