色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

利用同義詞簡(jiǎn)化SQL Server 2005開(kāi)發(fā)

瀏覽:5日期:2023-10-30 18:58:16
一. 引言如果你曾經(jīng)使用SQL Server開(kāi)發(fā)過(guò)任何軟件,那么你肯定會(huì)習(xí)慣于使用四部分標(biāo)識(shí)符來(lái)參考一個(gè)對(duì)象:[[[server.][database].][schema_name].]object_name正如上面的方括號(hào)所顯示的,該語(yǔ)法的不同部分可以被忽略,只要你提供足夠的表達(dá)來(lái)無(wú)二義地標(biāo)識(shí)你的對(duì)象即可。例如,下面所有這些表達(dá)都可能參考相同的對(duì)象:Server1.AdventureWorks.Production.ProductCategoryAdventureWorks.Production.ProductCategoryAdventureWorks..ProductCategoryProductCategory在大多數(shù)情況下,你可以?xún)H使用三部分名字而忽略服務(wù)器名-除非你是在處理在一個(gè)連接的服務(wù)器上的對(duì)象。默認(rèn)情況下,所有對(duì)象的上下文都是本地?cái)?shù)據(jù)庫(kù)-你的SQL語(yǔ)句在其中執(zhí)行。但是,有些情況下,或者更為準(zhǔn)確地說(shuō),你必須使用這整個(gè)四部分命名(或稱(chēng)作一種全稱(chēng)限定名)。但是,在SQL Server 2005中,這種情況有所改變。二. 熟悉同義詞SQL Server 2005引入了一個(gè)同義詞的概念,這是一個(gè)單部分的名字,它可以替換在許多SQL語(yǔ)句中的一個(gè)兩、三或四部分的名字。使用同義詞可以讓你減少輸入,而且還能提供一個(gè)抽象層來(lái)為你保護(hù)底層對(duì)象的改變。為了理解其工作原理,讓我們先看一下創(chuàng)建同義詞的語(yǔ)法。下面是CREATE SYNONYM語(yǔ)句的語(yǔ)法: CREATE SYNONYM [schema_name.]synonym_name FOR object_name在此,object_name是一個(gè)SQL Server對(duì)象(全稱(chēng)限定已經(jīng)足以能夠標(biāo)識(shí)出這個(gè)對(duì)象)的名字,而synonym_name是你想賦給它的新名字。如果你不想為同義詞指定一種模式,那么SQL Server使用當(dāng)前的用戶(hù)的默認(rèn)模式。當(dāng)你創(chuàng)建同義詞時(shí),相應(yīng)的對(duì)象不需要存在,因?yàn)橥x詞是遲綁定的:當(dāng)你實(shí)際上使用同義詞時(shí),SQL Server僅僅檢查基對(duì)象。例如,在AdventureWorks示例數(shù)據(jù)庫(kù)中,你可以以下列方式創(chuàng)建一個(gè)同義詞:CREATE SYNONYM ProdCatFOR AdventureWorks.Production.ProductCategory之后,你可以繼續(xù)使用在SQL語(yǔ)句中的同義詞了。例如:SELECT * FROM ProdCat圖1顯示出相應(yīng)的結(jié)果:利用同義詞簡(jiǎn)化SQL Server 2005開(kāi)發(fā)當(dāng)你使用完一個(gè)同義詞后,你可以使用DROP SYNONYM語(yǔ)句來(lái)去掉它,它具有你期望的語(yǔ)法格式:DROP SYNONYM [schema_name.]synonym_name三. 幾點(diǎn)細(xì)節(jié)當(dāng)然,對(duì)于同義詞的使用上也存在一些限制。對(duì)于初學(xué)者來(lái)說(shuō),你不能為任何東西都創(chuàng)建一個(gè)同義詞。SQL Server 2005比以前引入了更多的對(duì)象,但是同義詞僅限于應(yīng)用于核心集的最有用的一些對(duì)象中:· 表· 視圖· 存儲(chǔ)過(guò)程· CLR存儲(chǔ)過(guò)程· CLR函數(shù)· 復(fù)制過(guò)濾過(guò)程· 擴(kuò)展存儲(chǔ)過(guò)程· SQL標(biāo)量,表值以及內(nèi)聯(lián)表值函數(shù)關(guān)于在什么情況下使用同義詞還存在一些限制。一般來(lái)說(shuō),你可以在下面這些T-SQL語(yǔ)句中使用一個(gè)同義詞:· SELECT· sub-selects· UPDATE· INSERT· DELETE· EXECUTE如果你仔細(xì)考慮一下,那么第二個(gè)表不應(yīng)該太奇怪:它包含了最常用的where語(yǔ)句。注意,你不能在一個(gè)DDL語(yǔ)句中參考一個(gè)同義詞。如果你想使用ALTER TABLE來(lái)改變ProductCategory表中的內(nèi)容,那么,你需要使用基表而不是使用ProdCat同義詞。為了創(chuàng)建一個(gè)同義詞,你需要CREATE SYNONYM權(quán)限。在創(chuàng)建一個(gè)同義詞后,它就有了與其自己相關(guān)聯(lián)的GRANT,DENY和REVOKE許可權(quán)。四. 把同義詞作為一個(gè)抽象層除了節(jié)省你的輸入時(shí)間外,同義詞還可以用作你的數(shù)據(jù)庫(kù)的不穩(wěn)定的或經(jīng)常更新部分的一個(gè)抽象層。這是因?yàn)橥x詞及其基對(duì)象之間的綁定僅在運(yùn)行時(shí)刻檢查,而不是在設(shè)計(jì)時(shí)刻。為了說(shuō)明這個(gè)問(wèn)題,如果你重新定義ProdCat同義詞,請(qǐng)研究下面發(fā)生什么情況:DROP SYNONYM ProdCatCREATE SYNONYM ProdCatFOR AdventureWorks.Production.ProductCategorySELECT * FROM ProdCatDROP SYNONYM ProdCatCREATE SYNONYM ProdCatFOR AdventureWorks.Production.CultureSELECT * FROM ProdCat注意,當(dāng)你任何時(shí)候想改變一個(gè)同義詞時(shí),你需要使用DROP和CREATE;不存在ALTER SYNONYM語(yǔ)句。圖2顯示出運(yùn)行這個(gè)批處理語(yǔ)句的結(jié)果。注意,在此,語(yǔ)句SELECT * FROM ProdCat與前面的第二次執(zhí)行結(jié)果懸殊很大,因?yàn)橥x詞被重新定義以參考一個(gè)不同的表。當(dāng)然,你可以把這種行為應(yīng)用于你自己的應(yīng)用程序中。例如,假定你有一個(gè)程序,它需要分析來(lái)自于多種數(shù)據(jù)庫(kù)的顧客數(shù)據(jù)。不是把基表與單個(gè)數(shù)據(jù)庫(kù)連接起來(lái)或斷開(kāi)連接,或編寫(xiě)復(fù)雜的選擇表格進(jìn)行分析的SQL,而是使用同義詞。定義一個(gè)同義詞,例如DataTable,來(lái)參考你想使用的數(shù)據(jù)的四部分名字,并且重新定義它-無(wú)論何時(shí)你想要切換源數(shù)據(jù)。當(dāng)然,這種遲綁定也是一把雙刃劍。因?yàn)镾QL Server并不追蹤是否一個(gè)同義詞指向任何東西,它也不會(huì)進(jìn)行任何模式綁定排序。如果你刪除一個(gè)應(yīng)用于另一個(gè)語(yǔ)句中的同義詞,那么你可能直到試圖運(yùn)行該語(yǔ)句時(shí)才發(fā)現(xiàn)出了問(wèn)題。五. 小結(jié)你能夠開(kāi)發(fā)自己的下一個(gè)SQL Server應(yīng)用程序而不使用同義詞嗎?當(dāng)然可以。它們并沒(méi)有為數(shù)據(jù)庫(kù)表帶來(lái)根本性的新內(nèi)容;你可以總是使用完全限定名字-在任何你想使用一個(gè)同義詞的地方。但是有時(shí)把這些'小東西'加入到你的產(chǎn)品是一件不錯(cuò)的事情,就因?yàn)樗鼈兡軌驅(qū)崿F(xiàn)更少的輸入和帶給開(kāi)發(fā)者一種更容易的體驗(yàn)。也許在一個(gè)應(yīng)用程序的開(kāi)發(fā)過(guò)程的某一階段同義詞將僅會(huì)節(jié)省你10分鐘時(shí)間,但是所有這些小的10分鐘相加應(yīng)該是個(gè)不少的數(shù)目吧!
主站蜘蛛池模板: 日本精品一区二区三区在线视频一 | 香蕉午夜 | 亚洲综合无码一区二区 | 国产高清视频免费最新在线 | 日本成人在线免费观看 | 亚洲自拍另类 | 欧美一级毛片免费观看视频 | 国产精品高清在线观看地址 | 欧美国产日韩久久久 | 久久久国产在线 | 国产精品视频久久久久 | 黄色wwwxxx| 国产精品一级毛片不收费 | 欧洲乱码伦视频免费 | 亚洲一区国产 | 黄a 大片a v 永久免费 | 日本三区视频 | 亚洲欧洲国产精品 | 久久精品国产一区 | 日韩在线资源 | 午夜欧美成人久久久久久 | 国产一区二区三区亚洲综合 | 亚洲一区二区三区精品影院 | 欧美成人做爰网站 | 在线视频第一页 | 欧美一级做一a做片性视频 欧美一级做一级爱a做片性 | 久久在线免费观看 | 二区三区在线观看 | 国产高清在线精品一区在线 | 在线另类视频 | 久久久久无码国产精品一区 | 免费特黄级夫费生活片 | 国产三片高清在线观看 | 自拍偷拍亚洲视频 | 国产一级做a爱片久久毛片a | 午夜毛片网站 | 生活片毛片 | 搞黄网站免费看 | 成人久久18免费网 | 亚洲男人的天堂在线 | 免费人成年短视频在线观看免费网站 |