国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

SQL Server臨時(shí)表的使用方案大全

數(shù)據(jù)庫 SQL Server
我們今天主要描述的是SQL Server臨時(shí)表的實(shí)用大全,我在一個(gè)網(wǎng)站找到一個(gè)關(guān)于SQL Server臨時(shí)表的實(shí)用大的資料,所以今天拿出來供大家分享。

我們今天是要和大家一起討論的是SQL Server臨時(shí)表的實(shí)用大全,如果你對SQL Server臨時(shí)表的實(shí)用大全不是很了解的話,下面的文章就是對其相關(guān)內(nèi)容的具體介紹,希望會給你帶來一些幫助在此方面。

引子:

臨時(shí)數(shù)據(jù)表格,我們在存儲的時(shí)候經(jīng)常遇見。

客戶端可以實(shí)用Delphi的ClientDataSet的內(nèi)存表,但是ClientDataSet類似TABLE,不是支持SQL語言的。

當(dāng)然也可以實(shí)用臨時(shí)表。有時(shí)我們避免SQL Server臨時(shí)表的生命周期的麻煩,更多的使用實(shí)際表臨時(shí)用用。起個(gè)什么tempXXX類似的告訴我們他們是臨時(shí)表。創(chuàng)建釋放也沒有問題。

那么臨時(shí)表的周期是什么樣子的呢?有什么特殊的用法沒有?

1.全局臨時(shí)表和臨時(shí)表的區(qū)別:視野不同。

 

全局臨時(shí)表當(dāng)然就是使用##打頭的表格,普通的臨時(shí)表格為#打頭。它們的周期應(yīng)該隨一個(gè)連接也就是Connection的誕生而生,隨著Connection的斷開而死亡。它們的區(qū)別不同的地方也就是視野不同。

 

 

全局表,全部授權(quán)的Connection都可以看見。但是普通SQL Server臨時(shí)表(局域臨時(shí)表)僅僅創(chuàng)建的Connection可以看見。特別說明的是SQL Server的isql.exe每個(gè)連接就是一個(gè)Connection。

 

 

例如:一個(gè)應(yīng)用程序app.exe有僅adoconnection連接SQL Server數(shù)據(jù),那么這個(gè)連接中的adoquery或者存儲過程建立的全局表##temp1,另外的一個(gè)app.exe或者其它的appx.exe都可以使用該表格。

 

 

不同的是普通臨時(shí)表,由app.exe中的連接connection比如adoconnection的Adoquery建立的臨時(shí)表#temp,在所有該連接的該程序的app.exe都可以看見并且訪問,但是appx.exe或者其它的就不能看見。

 

陷阱:如果一個(gè)應(yīng)用程序app.exe有存儲過程和TADOQUERY連接同一個(gè)ADOCONNECTION.切記使用存儲過程建立的臨時(shí)表(非全局),就不能被這個(gè)連接下的TADOQUERY訪問。原因是:存儲過程本身是服務(wù)器端執(zhí)行,應(yīng)該是服務(wù)器的CONNECTION。

2.全局表或者SQL Server臨時(shí)表的存儲和建立。

 

估計(jì)大家都知道,臨時(shí)表或者全局表都是在SQL Server的tempdb數(shù)據(jù)庫存儲,表我們訪問的時(shí)候使用#,但是實(shí)際在進(jìn)程里面是以在tempdb里面的用戶表以#xxx_________00000000xxx方式存儲(是否是進(jìn)程標(biāo)識,不大知道,也不想知道)。可以通過isql.exe的tempdb里面看見它們。

 

3。頭痛初始化表格

初始化表格,為什么頭痛,畢竟使用Drop什么的。或者判斷存在比較麻煩。其實(shí)也很簡單。另外建立臨時(shí)表,都是無聊的SQL 語句,怎么處理。

方法一:當(dāng)然是使用存儲過程了。可以直接寫SQL語句或者寫exec (@v_sql)。

方法二:把SQL Server臨時(shí)表保存到數(shù)據(jù)里面MEMO里面,讀取,直接執(zhí)行。

判斷方法一:可以采用常用的exists函數(shù)。

 

例如:

  1. if exists (select * from tempdb..sysobjects where id = object_id(@sTmpWareA) and type = "U"

 

判斷方法二:

 

  1. if object_id('tempdb.dbo.##'+@v_userid) is null 

應(yīng)用方法一:(感謝阿滿,迷糊)

一個(gè)統(tǒng)計(jì)的SQL Server臨時(shí)表格,使用TADOPROC執(zhí)行存儲過程,如下:

 

  1. CREATE PROCEDURE InitCreateCoawardTable AS  
  2. BEGIN  
  3. IF not (object_id('tempdb.dbo.#Tmp_Detail') is null)  
  4. drop table tempdb.dbo.#Tmp_Detail  
  5. CREATE TABLE tempdb.dbo.#Tmp_Detail (  
  6. [id] [int] IDENTITY (1, 1) NOT NULL , 

 

 

[單據(jù)類別] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,

 

[單據(jù)編號] [varchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,

 

(。。這里多復(fù)雜都可以。。。。。省略。。。)

 

 

  1. select * from tempdb.dbo.#Tmp_Detail  
  2. END  
  3. GO 

 

 

在客戶端使用TADOPROC執(zhí)行這個(gè)存儲過程,

 

  1. with sproc do  
  2. begin  
  3. try  
  4. Close;  
  5. ProcedureName:=spName;  
  6. Parameters.Refresh;  
  7. Prepared;  
  8. ExecProc; 

 

 

Open;//這句不能省略要不,就出現(xiàn)忽略了數(shù)據(jù)庫名稱 ',將引用 tempdb 中的對象錯(cuò)誤。

 

 

  1. except  
  2. Close;  
  3. Exit;  
  4. end;  
  5. Result:=True;  
  6. end; 

 

 

這樣,你的TADOPROC就可以任意使用APPEND,INSERT語句了,更好的是不需要清理,而且方法靈活。更好的有點(diǎn)非常有效的處理并發(fā)。當(dāng)然有些人還在使用建立實(shí)際表格代替它,使用會話處理該問題,你還得回收。相當(dāng)麻煩。而且靈活度差多了。

以下是應(yīng)用范例轉(zhuǎn)載:

 

利用SQL Server的全局臨時(shí)表防止用戶重復(fù)登錄

 

在我們開發(fā)商務(wù)軟件的時(shí)候,常常會遇到這樣的一個(gè)問題:怎樣防止用戶重復(fù)登錄我們的系統(tǒng)?特別是對于銀行或是財(cái)務(wù)部門,更是要限制用戶以其工號身份多次登入。

可能會有人說在用戶信息表中加一字段判斷用戶工號登錄的狀態(tài),登錄后寫1,退出時(shí)寫0,且登錄時(shí)判斷其標(biāo)志位是否為1,如是則不讓該用戶工號登錄。但是這樣那勢必會帶來新的問題:如發(fā)生象斷電之類不可預(yù)知的現(xiàn)象,系統(tǒng)是非正常退出,無法將標(biāo)志位置為0,那么下次以該用戶工號登錄則不可登入,這該怎么辦呢?

或許我們可以換一下思路:有什么東西是在connection斷開后可以被系統(tǒng)自動回收的呢?對了,SQL Server的臨時(shí)表具備這個(gè)特性!但是我們這里的這種情況不能用局部臨時(shí)表,因?yàn)榫植颗R時(shí)表對于每一個(gè)connection來說都是一個(gè)獨(dú)立的對象,因此只能用全局SQL Server臨時(shí)表來達(dá)到我們的目的。

好了,情況已經(jīng)明朗話了,我們可以寫一個(gè)象下面這樣簡單的存儲過程:

 

  1. create procedure gp_findtemptable -- 2001/10/26 21:36 zhuzhichao in nanjing 

 

/* 尋找以操作員工號命名的全局臨時(shí)表

* 如無則將out參數(shù)置為0并創(chuàng)建該表,如有則將out參數(shù)置為1

* 在connection斷開連接后,全局臨時(shí)表會被SQL Server自動回收

* 如發(fā)生斷電之類的意外,全局臨時(shí)表雖然還存在于tempdb中,但是已經(jīng)失去活性

* 用object_id函數(shù)去判斷時(shí)會認(rèn)為其不存在. */

@v_userid varchar(6), -- 操作員工號

@i_out int out -- 輸出參數(shù) 0:沒有登錄 1:已經(jīng)登錄

 

  1. as  
  2. declare @v_sql varchar(100)  
  3. if object_id('tempdb.dbo.##'+@v_userid) is null  
  4. begin  
  5. set @v_sql = 'create table ##'+@v_userid+'(userid varchar(6))'  
  6. exec (@v_sql)  
  7. set @i_out = 0 
  8. end  
  9. else  
  10. set @i_out = 1 

 

在這個(gè)過程中,我們看到如果以用戶工號命名的全局SQL Server臨時(shí)表不存在時(shí)過程會去創(chuàng)建一張并把out參數(shù)置為0,如果已經(jīng)存在則將out參數(shù)置為1。

這樣,我們在我們的應(yīng)用程序中調(diào)用該過程時(shí),如果取得的out參數(shù)為1時(shí),我們可以毫不客氣地跳出一個(gè)message告訴用戶說”對不起,此工號正被使用!”

判斷方法范例:

 

  1. select @sTmpWareA="tempdb..[##MARWareA"+ @ComputerName+"]"  
  2. if exists (select * from tempdb..sysobjects where id = object_id(@sTmpWareA) and type = "U")   
  3. begin   
  4. set @sTmpWareA="[##MARWareA"+ @ComputerName+"]"   
  5. exec( "drop table " +@sTmpWareA )   
  6. end   
  7. else   
  8. set @sTmpWareA="[##MARWareA"+ @ComputerName+"]"  

 

 

 

@sTmpWareA 就是SQL Server臨時(shí)表的名稱,過程中使用exec來操作

 

 

 

 

責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2010-10-19 14:45:01

SQL SERVER臨

2010-09-16 15:03:10

SQL Server臨

2010-09-16 17:56:31

SQL server臨

2010-07-22 16:02:29

2021-01-18 05:23:14

SQL 排序Server

2010-07-08 14:42:34

SQL Server臨

2010-10-19 15:25:05

Sql Server臨

2010-09-16 15:10:48

SQL Server表

2010-05-17 16:31:48

Mysql臨時(shí)表

2011-03-29 13:22:07

SQL Server臨時(shí)表表變量

2010-07-01 14:46:10

SQL Server臨

2010-09-02 16:28:03

SQL刪除

2011-09-02 14:45:43

Oracle臨時(shí)表SQL Server臨

2010-10-19 14:56:05

sql server臨

2010-11-11 10:41:03

sql server遍

2010-11-12 13:27:13

動態(tài)sql

2010-07-01 14:11:40

SQL Server內(nèi)

2009-03-18 10:56:29

生命周期全局臨時(shí)表SQL Server

2010-07-08 14:24:21

SQL Server

2010-10-19 15:31:40

sql server觸
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

www.久久.com| 成人手机在线| 91禁外国网站| 日本高清不卡视频| 国产成人综合亚洲91猫咪| 国产中文字幕在线免费观看| 欧美在线观看成人| 99爱免费视频| 成人动漫视频在线观看完整版| 国产视频久久网| 久久综合狠狠综合久久激情| 天堂网在线观看国产精品| 国产精品18久久久久久久久久久久| 国产精品网站在线| 欧美色倩网站大全免费| 欧美日韩一区二区三区视频| 欧美一级视频精品观看| 欧美精品一区男女天堂| 欧美揉bbbbb揉bbbbb| 福利一区视频在线观看| 亚洲自拍三区| 亚洲无线码在线一区观看| 五月激情综合网| 久久新电视剧免费观看| 美女诱惑一区| 日韩欧美视频| 欧美国产亚洲精品| 久久www人成免费看片中文| 性综艺节目av在线播放| 国产在线观看欧美| 国产一区二区三区高清视频| 久久久噜噜噜久久久| 日韩精品久久久久| 欧美日韩国产中文| 亚洲国产另类av| 久久综合色天天久久综合图片| 日韩一区欧美二区| 在线精品国产| 国产欧美一区二区三区精品观看 | 欧美中文字幕在线观看视频| 国产精品推荐精品| 国产精品第一视频| 欧美激情精品久久久久久变态| 日韩精品视频在线播放| 欧美三区免费完整视频在线观看| 亚洲蜜臀av乱码久久精品| 91麻豆文化传媒在线观看| 精品一区中文字幕| 翔田千里一区二区| 中文字幕一区二区三区欧美日韩| 日韩成人一级| 18国产精品| 高清久久一区| av久久网站| 范冰冰一级做a爰片久久毛片| 最新国产在线拍揄自揄视频| 牛牛影视精品影视| 一个人看的免费视频色| xxx亚洲日本| 国产又黄又猛又粗| 久久精品免费一区二区| 欧美久久久久久久久久久久久久| 亚洲一区二区三区加勒比| 精品无人区一区二区三区 | 国产一区二区三区在线| 日韩精品极品视频免费观看| 精品国产欧美一区二区| 日韩精品中文字幕一区| 日韩欧美一区二区免费| 日韩视频一区二区在线观看| 欧美一卡二卡在线| 欧美一级艳片视频免费观看| 欧美一级电影网站| 欧美tk—视频vk| 亚洲精品在线免费播放| 日韩av网站大全| 亚洲欧洲一区二区三区在线观看| 日韩精品在线视频| 国产亚洲精品91在线| 一本色道久久综合狠狠躁篇的优点 | 一级片免费视频| 性网站在线免费观看| 国产理论片免费观看| 黄a免费视频| 日本按摩中出| 中文在线天堂网| 欧美男男激情freegay| 国产69久久| 成人在线播放| av成人 com a| 成人开心激情| 国产不卡精品在线| 国产精品18hdxxxⅹ在线| 一道本一区二区三区| 成人一区而且| 欧美日韩国内| 日韩中文字幕一区二区三区| 精品制服美女丁香| 99国产精品久久| 中文字幕亚洲不卡| 欧美午夜丰满在线18影院| 9191国产精品| 亚洲午夜性刺激影院| 精品国偷自产在线| 亲爱的老师9免费观看全集电视剧| 91精品国产自产在线| 激情伦成人综合小说| 亚洲精品中字| www.中文字幕在线| 蜜桃一级网站.| yw视频在线观看| ****av在线网毛片| 看片一区二区| 教室别恋欧美无删减版| 亚洲经典视频在线观看| 国产精品综合av一区二区国产馆| 久久久91精品国产一区二区精品| 一区二区三区毛片| 在线不卡a资源高清| 揄拍成人国产精品视频| 日韩av不卡在线| 欧美凹凸一区二区三区视频 | 一本一道久久综合狠狠老| 国产精品亚洲欧美| 国产麻豆成人传媒免费观看| 国产日产欧美一区二区视频| 欧美天天综合色影久久精品| 日韩av在线最新| 午夜视频在线免费| 亚洲午夜精品久久久久久app| 欧美成人r级一区二区三区| 国产日韩欧美大片| free性欧美| 久久精品夜色噜噜亚洲aⅴ| 日韩亚洲在线观看| 欧美第一在线视频| 日本欧美高清| 一区在线播放| 成人一区二区三区| 亚洲一级二级三级| 精品久久99ma| 久久久伊人日本| 国产成人精品免费视频大全最热| 亚洲韩国在线| 国产又黄又猛又粗又爽的视频| 久草在线免费福利资源| 九色porny视频在线观看| 久久天堂久久| 综合天堂久久久久久久| 国精产品一区一区三区mba视频 | 99精品国产福利在线观看免费 | 91精品视频免费观看| 亚洲欧美精品在线观看| 污视频网站观看| av网站在线看| 一区二区三区四区在线看| 免费看黄色91| 一二三四社区欧美黄| 日韩精品免费电影| 91精品国产综合久久香蕉922| 一本一道久久久a久久久精品91| free性欧美1819hd| 99在线视频影院| 999成人精品视频线3| 99久久精品久久久久久清纯| 欧美亚洲一区二区三区四区| 欧美精品中文字幕一区| 欧美一区1区三区3区公司 | 三级欧美在线一区| 亚洲猫色日本管| 亚洲精品视频网上网址在线观看| 成人黄色午夜影院| 少妇高潮喷水久久久久久久久久| 免费在线午夜视频| 日韩有码一区| 成人一区二区三区在线观看| 欧美日韩在线电影| 欧美亚洲国产另类| 欧美黑人在线观看| 快射av在线播放一区| 欧美日本成人| 不卡av电影在线播放| 日韩亚洲欧美高清| 国产精品久久久久久av| 自拍日韩亚洲一区在线| 欧美日韩视频在线播放| 欧美猛男做受videos| 99re热这里只有精品免费视频 | 亚洲国产成人tv| 久久艳片www.17c.com | 成人精品一区二区三区电影黑人| 日日鲁鲁鲁夜夜爽爽狠狠视频97 | 蜜桃传媒在线观看免费进入| 日韩一区二区在线| 久久美女艺术照精彩视频福利播放 | 午夜精品福利一区二区| 日韩美女一级视频| 亚洲人挤奶视频| 91亚洲男人天堂| 日韩成人激情在线|