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

掃一掃
關(guān)注微信公眾號(hào)

巧用SET選項(xiàng)設(shè)置SQL Server客戶端配置
2009-05-08   ITPUB論壇

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

要實(shí)現(xiàn)類似的功能,就需要用到SQL Server數(shù)據(jù)庫(kù)中的SET選項(xiàng)。如要實(shí)現(xiàn)上述的需求,數(shù)據(jù)庫(kù)管理員可以把SET ANSI_DEFAULTS ON,然后再通過(guò)SQL_COPT_SS_PRESERVE_CURSORS來(lái)設(shè)置客戶端的配置。如此的話,就可以實(shí)現(xiàn)客戶端與服務(wù)器配置的不同,提高客戶端配置的靈活性。

不過(guò)需要注意的是,使用這些SET選項(xiàng)會(huì)導(dǎo)致客戶端與服務(wù)器配置的不同,即一些連接參數(shù)、運(yùn)行環(huán)境等等可能會(huì)出現(xiàn)混亂。為此在使用SET選項(xiàng)時(shí)還必須考慮這個(gè)一致性的問題。也就是說(shuō),使用SET選項(xiàng)時(shí)要注意如下細(xì)節(jié),

  一、SET選項(xiàng)的生效時(shí)間。

利用SET選項(xiàng)來(lái)設(shè)置相關(guān)的運(yùn)行參數(shù)與環(huán)境的時(shí)候,要注意其生效時(shí)間。這與服務(wù)器默認(rèn)參數(shù)不同。默認(rèn)參數(shù)其是始終生效的,除非后來(lái)數(shù)據(jù)庫(kù)管理員改變了其設(shè)置。但是使用SET選項(xiàng)來(lái)設(shè)置相關(guān)參數(shù)時(shí),其生效時(shí)間就尤其特殊性。一般來(lái)說(shuō),SET選項(xiàng)可以分為分析時(shí)SET選項(xiàng)與執(zhí)行時(shí)SET選項(xiàng)。隨著他們的分類不同,這個(gè)選項(xiàng)的生效時(shí)間也是不同的。如分析時(shí)選項(xiàng)在分析期間分析出文本中的選項(xiàng)時(shí)生效,而不管是否受流語(yǔ)句的控制。而執(zhí)行選型則在指定這些選項(xiàng)的代碼執(zhí)行期間生效。如在一個(gè)批處理程序中,可以設(shè)置一個(gè)SET選項(xiàng)。如果在執(zhí)行這個(gè)SET語(yǔ)句之前,批處理程序已經(jīng)因?yàn)槟承┰驁?zhí)行失敗,則這個(gè)選項(xiàng)就不會(huì)生效,即數(shù)據(jù)庫(kù)系統(tǒng)沒有設(shè)置這個(gè)選項(xiàng)。如果在執(zhí)行SET語(yǔ)句后執(zhí)行失敗,則這這個(gè)選項(xiàng)就已經(jīng)生效了。

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

  二、要注意SET選項(xiàng)的作用范圍。

其實(shí)SET選項(xiàng)設(shè)置的參數(shù)與數(shù)據(jù)庫(kù)服務(wù)器的默認(rèn)參數(shù)就好像是一個(gè)局部變量與全局變量的關(guān)系。前者設(shè)置的參數(shù)就是一個(gè)局部變量,其只有在一個(gè)特定的范圍內(nèi)有效;離開了這個(gè)范圍的話,就會(huì)失效。而全局變量的話通常情況下都是有效的,除非在某個(gè)領(lǐng)域內(nèi)又對(duì)其重新賦值了。所以說(shuō),數(shù)據(jù)庫(kù)管理員必須要了解SET選型的作用范圍,為后續(xù)引用這些參數(shù)做好準(zhǔn)備。具體來(lái)說(shuō),這些SET選項(xiàng),往往跟不同的功能結(jié)合使用。如跟批處理程序、跟觸發(fā)器等等結(jié)合使用。而隨著這個(gè)使用范圍的不同,其作用范圍也是不同的。

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

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

3、在觸發(fā)器或者過(guò)程中也可以使用SET選項(xiàng)。那么跟他們結(jié)合使用時(shí),SET選項(xiàng)的壽命又有多少呢?這要分情況來(lái)對(duì)待。一是要看觸發(fā)器或者過(guò)程內(nèi)容有沒有多次使用SET選項(xiàng)。如在觸發(fā)器中,可能一開始就利用SET選項(xiàng)設(shè)置了某個(gè)參數(shù);然后某個(gè)功能執(zhí)行完畢后又把這個(gè)參數(shù)恢復(fù)了默認(rèn)值,再繼續(xù)執(zhí)行剩下的功能。在這種情況下,其有效持續(xù)時(shí)間就是觸發(fā)器內(nèi)部這個(gè)參數(shù)被重置之前。也就是說(shuō),在一個(gè)觸發(fā)器或者內(nèi)部可以先打開某個(gè)選項(xiàng),然后再關(guān)閉掉。那么只有在這個(gè)選項(xiàng)打開與關(guān)閉之前有效。二是如果在觸發(fā)器內(nèi)部一開始啟用了某個(gè)SET選項(xiàng),后來(lái)沒有把他關(guān)閉掉,那么這個(gè)選項(xiàng)也不會(huì)永遠(yuǎn)生效下去。通常情況下,只要當(dāng)前這個(gè)觸發(fā)器或者過(guò)程執(zhí)行完畢后,這個(gè)SET選型就會(huì)失效。為此簡(jiǎn)單的說(shuō),這個(gè)SET選項(xiàng)就好象是存儲(chǔ)器或者過(guò)程中的局部變量,其只在觸發(fā)器或者過(guò)程的內(nèi)部生效。

4、如果一個(gè)過(guò)程A調(diào)用了另外一個(gè)過(guò)程B,而現(xiàn)在如果過(guò)程A中利用SET選項(xiàng)更改了某些參數(shù),那么這個(gè)更改會(huì)否影響到過(guò)程B的運(yùn)行環(huán)境將呢?答案是不確定。這主要是看過(guò)程B中有沒有對(duì)這個(gè)SET選型進(jìn)行重新設(shè)置。也就是說(shuō),除非在過(guò)程B中進(jìn)行了顯示的重置,否則來(lái)自所有更高級(jí)別的代碼中的SET選項(xiàng)值在低級(jí)別的代碼中有效。簡(jiǎn)單的說(shuō),過(guò)程A調(diào)用了過(guò)程B,則過(guò)程A中的SET選項(xiàng)值在過(guò)程B中同樣有效。除非過(guò)程B顯示的對(duì)這SET選型進(jìn)行了重置。其實(shí)這個(gè)原理很簡(jiǎn)單,就好象在過(guò)程A中定義了一個(gè)變量,然后調(diào)用了過(guò)程B。此時(shí)過(guò)程B使用需要用到這個(gè)過(guò)程A中定義的變量時(shí),他的值就是在過(guò)程A中修改后的值。當(dāng)然在過(guò)程B中也可以對(duì)這個(gè)過(guò)程A中定義的變量值進(jìn)行修改,如可以對(duì)這個(gè)變量的值進(jìn)行重置。不過(guò)當(dāng)這個(gè)過(guò)程A結(jié)束時(shí),這個(gè)變量就會(huì)失效了。#p#分頁(yè)標(biāo)題#e#

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

熱詞搜索:

上一篇:學(xué)會(huì)在硬盤之間分布關(guān)鍵數(shù)據(jù)文件
下一篇:淺談Oracle中的三種Join方法

分享到: 收藏
国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区
欧美性大战久久久久久久蜜臀| 日韩图片一区| 亚洲精品一线二线三线无人区| 影院欧美亚洲| 老司机一区二区三区| 亚洲激情一区二区| 欧美三级第一页| 久久精品国产亚洲一区二区| 在线观看欧美日本| 欧美日韩直播| 久久久久久久综合| 亚洲精品中文字幕有码专区| 欧美色欧美亚洲另类二区| 亚洲欧美日本精品| 亚洲精品中文字幕在线| 国产精品伦子伦免费视频| 欧美极品色图| 久久综合九色综合久99| 一区二区三区视频在线播放| 国产一区二区三区电影在线观看| 久久久噜噜噜久噜久久| 亚洲视频axxx| 日韩视频第一页| 极品尤物一区二区三区| 国产欧美精品日韩| 欧美日韩在线高清| 欧美精品激情blacked18| 欧美在线黄色| 亚洲女性裸体视频| 亚洲一区区二区| 亚洲欧美日韩精品一区二区| 日韩亚洲欧美中文三级| 久久噜噜噜精品国产亚洲综合| 国产精品卡一卡二卡三| 欧美日韩一区高清| 欧美色偷偷大香| 国产精品美女诱惑| 国产女人精品视频| 国产精品yjizz| 国产日韩欧美综合在线| 韩国视频理论视频久久| 极品尤物久久久av免费看| 在线不卡中文字幕| 亚洲精品国产精品国产自| 日韩特黄影片| 欧美一区二区三区久久精品茉莉花| 亚洲欧美日本视频在线观看| 午夜亚洲福利| 美日韩精品视频| 欧美日韩一区二区三区| 国产精品一区视频网站| 国产自产2019最新不卡| 洋洋av久久久久久久一区| 欧美在线视频一区二区三区| 亚洲欧美日韩精品久久| 模特精品在线| 国产精品欧美风情| 一区二区三区精品久久久| 欧美亚洲尤物久久| 国产精品jizz在线观看美国| 狠狠色伊人亚洲综合成人| 亚洲桃花岛网站| 欧美粗暴jizz性欧美20| 国产女精品视频网站免费| 国产一二三精品| 国产一区二区三区黄视频| 在线观看91精品国产入口| 亚洲尤物在线视频观看| 欧美成人综合| 91久久线看在观草草青青| 久久精品99国产精品酒店日本| 欧美日本在线看| 宅男66日本亚洲欧美视频| 欧美剧在线观看| 一区二区三区四区五区精品视频 | 久热精品在线视频| 影音先锋成人资源站| 麻豆精品在线播放| 亚洲伦理久久| 国产女人18毛片水18精品| 久久精品主播| 亚洲国产精品久久久久婷婷老年| 亚洲精品一区二区网址| 模特精品在线| 亚洲视频一区在线| 黑人一区二区| 欧美日韩精选| 久久久噜噜噜久久中文字免 | 美女视频黄a大片欧美| 亚洲激情成人在线| 国产精品入口| 欧美日韩国产一级片| 欧美在线free| 亚洲精品在线免费观看视频| 欧美日韩国产成人在线观看| 欧美在线黄色| 好看的日韩av电影| 亚洲承认在线| 国产久一道中文一区| 欧美成人在线免费视频| 亚洲欧美日韩精品久久久| 一本久久青青| 亚洲高清不卡| 在线看视频不卡| 精品成人一区二区三区四区| 国产伦精品一区二区三区四区免费| 欧美成人激情视频免费观看| 久久人人爽人人爽| 猫咪成人在线观看| 蜜臀久久99精品久久久画质超高清 | 国产亚洲成精品久久| 欧美日韩精品一区二区三区四区 | 欧美日韩不卡| 欧美好吊妞视频| 欧美二区在线播放| 欧美日韩无遮挡| 欧美日韩在线播放| 国产精品综合| 国产精品视频yy9299一区| 国产精品观看| 伊人夜夜躁av伊人久久| 亚洲第一色中文字幕| 亚洲激情在线| 亚洲欧美激情诱惑| 美女尤物久久精品| 国产精品v欧美精品v日本精品动漫| 欧美日韩在线不卡| 黄网站免费久久| 亚洲电影激情视频网站| 欧美日韩国产影院| 国产精品丝袜xxxxxxx| 伊人伊人伊人久久| 欧美主播一区二区三区| 欧美精品首页| 国产精品久久久一区麻豆最新章节 | 国产女精品视频网站免费| 黄色综合网站| 亚洲欧美日韩爽爽影院| 男同欧美伦乱| 在线成人h网| 久久久久国产免费免费| 国产精品日韩久久久久| 99视频国产精品免费观看| 美女91精品| 国产亚洲福利社区一区| 亚洲字幕一区二区| 国产精品女主播一区二区三区| 精久久久久久| 久久亚洲二区| 亚洲第一区中文99精品| 玖玖玖国产精品| 亚洲激情小视频| 欧美日韩国产综合视频在线观看| 亚洲国内精品| 欧美日韩在线精品| 亚洲一区二区视频| 国产一区二区三区视频在线观看| 亚洲女人小视频在线观看| 国产区在线观看成人精品| 亚洲欧美日韩专区| 国产精品久99| 欧美一区视频在线| 久色成人在线| 国产午夜精品福利| 午夜精品美女久久久久av福利| 国产精品视区| 蜜桃久久精品乱码一区二区| 亚洲日本在线观看| 国产精品尤物福利片在线观看| 久久久午夜视频| 亚洲欧美日韩国产另类专区| 国产亚洲成av人片在线观看桃| 久久嫩草精品久久久精品一| 99天天综合性| 亚洲欧洲日韩综合二区| 国产美女诱惑一区二区| 免费亚洲电影在线| 久久久久天天天天| 欧美一区午夜精品| 欧美一区二区视频网站| 一本一本久久a久久精品综合妖精| 韩国在线一区| 国产在线观看91精品一区| 国产精品日韩欧美综合 | 国产一区二区三区不卡在线观看| 蜜桃av噜噜一区| 久久全国免费视频| 久久精品日韩欧美| 久久激情视频久久| 久久久精品国产免大香伊| 亚洲欧美日韩综合| 欧美一区二区三区四区夜夜大片| 亚洲精品无人区| 日韩视频在线观看| 亚洲一区二区不卡免费| 性欧美精品高清| 久久三级福利| 欧美日韩精品国产| 久久久精品一区| 久久综合九色综合欧美就去吻|