国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

巧用SET選項設置SQL Server客戶端配置
2009-05-08   ITPUB論壇

通常情況下,利用客戶端連接到SQL Server數據庫的時候,其默認是采用服務器的相關配置來初始化客戶端的連接。但是在某些情況下,數據庫管理員希望客戶端能夠管理自己的設置。而且往往這些客戶端的設置跟服務器的設置不一樣,甚至相反。此時客戶端要能夠在不修改服務器設置的情況下,連接到數據庫服務器中。

要實現類似的功能,就需要用到SQL Server數據庫中的SET選項。如要實現上述的需求,數據庫管理員可以把SET ANSI_DEFAULTS ON,然后再通過SQL_COPT_SS_PRESERVE_CURSORS來設置客戶端的配置。如此的話,就可以實現客戶端與服務器配置的不同,提高客戶端配置的靈活性。

不過需要注意的是,使用這些SET選項會導致客戶端與服務器配置的不同,即一些連接參數、運行環境等等可能會出現混亂。為此在使用SET選項時還必須考慮這個一致性的問題。也就是說,使用SET選項時要注意如下細節,

  一、SET選項的生效時間。

利用SET選項來設置相關的運行參數與環境的時候,要注意其生效時間。這與服務器默認參數不同。默認參數其是始終生效的,除非后來數據庫管理員改變了其設置。但是使用SET選項來設置相關參數時,其生效時間就尤其特殊性。一般來說,SET選項可以分為分析時SET選項與執行時SET選項。隨著他們的分類不同,這個選項的生效時間也是不同的。如分析時選項在分析期間分析出文本中的選項時生效,而不管是否受流語句的控制。而執行選型則在指定這些選項的代碼執行期間生效。如在一個批處理程序中,可以設置一個SET選項。如果在執行這個SET語句之前,批處理程序已經因為某些原因執行失敗,則這個選項就不會生效,即數據庫系統沒有設置這個選項。如果在執行SET語句后執行失敗,則這這個選項就已經生效了。

所以說如果SET選項跟一些批處理程序一起使用時,就需要特別注意這個SET選項的位置。因為這個SET選型是否生效直接跟批處理程序中其他語句的執行情況相關。如現在一個批處理程序中有8條語句,而SET選型就是其中的一條如在第五條。如果在執行這個批處理程序的時候,在第三條語句的時候卡住了,那么這個第五條的SET選項語句就根本不起作用。為此筆者建議數據庫管理員,像這些SET選項語句通常情況下最好放置在批處理程序的前面部分,以初始化批處理程序的相關運行環境。除非有特別的需要,否則的話不要放置在中間。

  二、要注意SET選項的作用范圍。

其實SET選項設置的參數與數據庫服務器的默認參數就好像是一個局部變量與全局變量的關系。前者設置的參數就是一個局部變量,其只有在一個特定的范圍內有效;離開了這個范圍的話,就會失效。而全局變量的話通常情況下都是有效的,除非在某個領域內又對其重新賦值了。所以說,數據庫管理員必須要了解SET選型的作用范圍,為后續引用這些參數做好準備。具體來說,這些SET選項,往往跟不同的功能結合使用。如跟批處理程序、跟觸發器等等結合使用。而隨著這個使用范圍的不同,其作用范圍也是不同的。

1、在會話過程中有效。有些SET選項是專門針對客戶端連接的。如筆者剛開始提起過的那個SET選型,其就是專么用來設置客戶端的連接參數的。這些參數可能跟服務器的默認參數之間存在著比較大的差異。那么這些參數的作用范圍是多少呢?通常情況下,針對專門會話所這支的SET選項,其在重置或者服務器中用戶的會話終止之前有效。也就是說,在客戶端連接的初始化過程中SET選項生效。只要用戶的這個會話沒有終止,這些選項都是生效的。除非用戶終止了當前的會話或者服務器強制重置相關參數,否則的話這個SET選項隨著會話啟用而生效,隨著會話終止而失效。另外需要注意的是,針對某個用戶設置的SET選項,其只對這個用戶的會話有效,而不會影響到其他用戶跟數據庫之間的通信。

2、支持 MARS 的連接維護一組默認的 SET 選項值。在該連接下執行批處理時,將把默認的 SET 選項值復制到請求的環境。批處理結束后,該環境將復制回會話的默認設置。通過這種方法,在同一連接下同時執行的多個批處理將在獨立的 SET 選項環境下運行。這是一個官方的說明,他是什么意思呢?也就是說,在同一個連接的過程中,可能會執行多個批處理作業。如果在這些批處理作業中,沒有設置SET選項的話,則其默認會采用服務器的默認設置。但是如果在第一個批處理程序中采用了SET選項更改這個默認設置,那么在第一個批處理程序運行環境中就會采用這個SET選項的設置。從而可以根據企業實際的需求,在同一個連接下為每個批處理程序設置相對獨立的運行環境。在支持 MARS 的連接下,如果同時執行多個批處理且它們會修改批處理執行環境,則得到的默認連接環境取決于最后執行完的批處理。也就是說,最后這個連接的參數取決于最后運行的皮處理程序中的SET選項。簡單的說,除非當前的連接中斷掉或者服務器實現強制重置,否則的話當前連接中的相關參數會被批處理程序中的SET選項改變。而且這個值會被多次改變。最后的參數是有最后一個批處理程序中的SET選項所決定。

3、在觸發器或者過程中也可以使用SET選項。那么跟他們結合使用時,SET選項的壽命又有多少呢?這要分情況來對待。一是要看觸發器或者過程內容有沒有多次使用SET選項。如在觸發器中,可能一開始就利用SET選項設置了某個參數;然后某個功能執行完畢后又把這個參數恢復了默認值,再繼續執行剩下的功能。在這種情況下,其有效持續時間就是觸發器內部這個參數被重置之前。也就是說,在一個觸發器或者內部可以先打開某個選項,然后再關閉掉。那么只有在這個選項打開與關閉之前有效。二是如果在觸發器內部一開始啟用了某個SET選項,后來沒有把他關閉掉,那么這個選項也不會永遠生效下去。通常情況下,只要當前這個觸發器或者過程執行完畢后,這個SET選型就會失效。為此簡單的說,這個SET選項就好象是存儲器或者過程中的局部變量,其只在觸發器或者過程的內部生效。

4、如果一個過程A調用了另外一個過程B,而現在如果過程A中利用SET選項更改了某些參數,那么這個更改會否影響到過程B的運行環境將呢?答案是不確定。這主要是看過程B中有沒有對這個SET選型進行重新設置。也就是說,除非在過程B中進行了顯示的重置,否則來自所有更高級別的代碼中的SET選項值在低級別的代碼中有效。簡單的說,過程A調用了過程B,則過程A中的SET選項值在過程B中同樣有效。除非過程B顯示的對這SET選型進行了重置。其實這個原理很簡單,就好象在過程A中定義了一個變量,然后調用了過程B。此時過程B使用需要用到這個過程A中定義的變量時,他的值就是在過程A中修改后的值。當然在過程B中也可以對這個過程A中定義的變量值進行修改,如可以對這個變量的值進行重置。不過當這個過程A結束時,這個變量就會失效了。#p#分頁標題#e#

可見,這個SET選項跟程序開發過程中的局部變量與全局變量非常的相似。數據庫管理員在使用這些SET選項的時候,需要注意一個基本的原則,即其作用范圍往往只在當前的會話或者過程中有效。為此數據庫管理員在啟用某個SET選項的時候,就需要考慮一個問題,即這個改變只是針對某個特定的會話或者某個特定的作業,還是針對全部用戶?如果是前者的話,則可以通過SET選項來設置。但是如果是后者的話,那么最好通過服務器設置來改變。否則的話,要為每個會話或者每個作業設置SET選型那工作量就比較大了。筆者以前學過程序開發,為此來學些這個SET選型的時候比較喜歡利用全局變量與局部變量的關系來了解這個功能。全局變量即在整個運行環境中都有效;而局部變量則只在某個作用范圍內有效。就是如此簡單而已。掌握了這個SET選項的作用范圍之后,就可以幫助數據庫管理員來確定到底是否該采用SET選項、以及在什么時候采用這個SET選項,來提高客戶端連接以及用戶運行環境的靈活性。

熱詞搜索:

上一篇:學會在硬盤之間分布關鍵數據文件
下一篇:淺談Oracle中的三種Join方法

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
国产高清在线观看免费不卡| 精品日韩欧美在线| 国产激情一区二区三区四区| 色综合天天综合网天天狠天天 | 99久久精品国产毛片| 欧美高清dvd| 一区二区三区电影在线播| 国产传媒一区在线| 欧美成人三级电影在线| 亚洲第一激情av| 色婷婷久久99综合精品jk白丝| 国产精品看片你懂得| 成人午夜看片网址| 久久精品亚洲乱码伦伦中文| 极品少妇xxxx精品少妇偷拍 | 综合在线观看色| 成人高清伦理免费影院在线观看| 久久综合九色综合欧美亚洲| 久久99蜜桃精品| 日韩免费视频一区二区| 久久国产精品第一页| 日韩欧美激情一区| 激情欧美日韩一区二区| 精品人在线二区三区| 国产精品中文有码| 国产精品三级电影| 暴力调教一区二区三区| 亚洲婷婷在线视频| 在线免费精品视频| 亚洲超丰满肉感bbw| 日韩欧美亚洲另类制服综合在线 | 欧美日韩和欧美的一区二区| 青青草国产精品亚洲专区无| 日韩欧美一二区| 国产曰批免费观看久久久| 国产视频一区二区在线观看| 9人人澡人人爽人人精品| 亚洲美女屁股眼交3| 欧美日韩三级一区二区| 久久国产精品99久久久久久老狼 | 久久99精品久久久久| 久久久激情视频| 99久久精品费精品国产一区二区| 亚洲欧美日韩国产一区二区三区 | 一区二区高清在线| 欧美精品一区二区三区视频| 成人a免费在线看| 日韩中文欧美在线| 欧美国产精品v| 5566中文字幕一区二区电影 | 久久一留热品黄| 欧洲中文字幕精品| 国产精品1区2区| 悠悠色在线精品| 精品成人一区二区三区| 色综合色综合色综合色综合色综合 | 亚洲综合色丁香婷婷六月图片| 日韩三级中文字幕| www.在线成人| 免费三级欧美电影| 亚洲免费毛片网站| 久久久不卡影院| 欧美日韩一区国产| 成人开心网精品视频| 乱一区二区av| 丝袜美腿一区二区三区| 亚洲人成精品久久久久| 久久精品无码一区二区三区| 欧美福利一区二区| 91视频观看免费| 国产精品系列在线播放| 日韩va欧美va亚洲va久久| 亚洲精品视频在线观看免费| 欧美精品一区二区三区在线播放| 日本精品一级二级| 99视频精品在线| 成人国产精品视频| 国产盗摄视频一区二区三区| 蜜臂av日日欢夜夜爽一区| 亚洲一区二区三区在线看| 国产精品午夜春色av| 久久久青草青青国产亚洲免观| 日韩欧美一级二级三级久久久| 91精彩视频在线观看| 91麻豆免费视频| 91高清视频免费看| 欧美在线免费观看亚洲| 欧美性大战久久| 欧洲精品一区二区| 精品视频999| 欧美精品第1页| 欧美一区二区三区精品| 欧美伦理视频网站| 91精品国产91久久综合桃花| 欧美一级在线免费| 精品国产乱码久久久久久蜜臀| 欧美一区二区三区喷汁尤物| 欧美一区二区三区四区视频| 欧美一区二区三区在线观看| 日韩一区二区三区视频在线| 精品国产自在久精品国产| 精品成a人在线观看| 久久影院视频免费| 国产精品久久久久久妇女6080| 国产精品网站在线观看| 国产精品天美传媒沈樵| 18欧美乱大交hd1984| 一区二区三区四区五区视频在线观看| 亚洲专区一二三| 日韩不卡一二三区| 国产精品一区二区在线播放| 成人精品高清在线| 欧美色综合天天久久综合精品| 欧美人伦禁忌dvd放荡欲情| 欧美二区三区的天堂| 2014亚洲片线观看视频免费| 中文字幕亚洲精品在线观看 | 一本久久精品一区二区| 欧美日韩黄色影视| 国产区在线观看成人精品| 樱花草国产18久久久久| 欧美bbbbb| 99久久久国产精品| 日韩欧美www| 亚洲精品视频免费看| 青青青伊人色综合久久| 不卡高清视频专区| 91精品国产一区二区| 国产精品久久久久久久久久久免费看| 午夜亚洲福利老司机| 国产精品一区二区在线播放| 欧美天堂亚洲电影院在线播放| 精品日韩欧美在线| 亚洲小说春色综合另类电影| 久久av资源网| 欧美唯美清纯偷拍| 中文字幕一区二区三区av| 奇米影视在线99精品| 99国产精品国产精品久久| 在线成人av影院| 综合久久久久久| 久久国产视频网| 欧美色图免费看| 国产欧美一区二区精品秋霞影院| 亚洲一区二区四区蜜桃| www.亚洲色图.com| 精品少妇一区二区三区在线播放 | 91黄色小视频| 中文字幕欧美国产| 精品一区二区三区日韩| 911精品产国品一二三产区| 中文字幕综合网| 国产精品一区免费在线观看| 日韩欧美国产一区二区三区| 亚洲国产精品天堂| 在线精品视频一区二区三四| 最近日韩中文字幕| 国产成人精品午夜视频免费| 精品国产乱码久久久久久牛牛| 日韩主播视频在线| 欧美日韩成人高清| 亚洲一区二区成人在线观看| 色综合视频一区二区三区高清| 国产精品国产三级国产| 国产精品一区二区不卡| www国产精品av| 国产精品正在播放| 国产蜜臀av在线一区二区三区| 经典三级视频一区| 精品国产一区二区三区久久影院| 麻豆精品蜜桃视频网站| 91精品福利在线一区二区三区| 天堂va蜜桃一区二区三区 | 亚洲精品久久久蜜桃| 色成人在线视频| 亚洲天天做日日做天天谢日日欢| 成人精品视频一区二区三区| 一区视频在线播放| 色综合天天综合网天天看片| 亚洲精品欧美专区| 欧美日韩国产免费一区二区| 奇米一区二区三区| 久久精品夜色噜噜亚洲a∨| 国产精品123| 国产精品视频九色porn| va亚洲va日韩不卡在线观看| 国产精品传媒视频| 在线欧美日韩精品| 免费在线观看一区| 国产婷婷色一区二区三区| 波多野洁衣一区| 亚洲狠狠丁香婷婷综合久久久| 欧美精品乱码久久久久久| 蜜臀av性久久久久蜜臀aⅴ四虎 | 免费人成在线不卡| 国产欧美精品区一区二区三区 | 亚洲一区二区三区四区中文字幕| 69堂亚洲精品首页| 国产精品66部| 香蕉成人伊视频在线观看|