在SQL Server 2008中運(yùn)用表值參數(shù)(TVP)_Mssql數(shù)據(jù)庫(kù)教程
推薦:SQL Server數(shù)據(jù)庫(kù)增強(qiáng)版?zhèn)浞蒹w驗(yàn)老鳥(niǎo)說(shuō)事:Microsoft SQL Server數(shù)據(jù)庫(kù)增強(qiáng)版?zhèn)浞蒹w驗(yàn) 在歐洲,有一首流傳很廣的民諺: 因?yàn)閬G失一根鐵釘,我們失去了一塊馬蹄鐵; 因?yàn)槭ヒ粔K馬蹄鐵,我們失去了一匹駿馬; 因?yàn)槭?/p>問(wèn)題:
當(dāng)我們?yōu)g覽SQL Server 2008的新特性的時(shí)候,我們發(fā)現(xiàn)一個(gè)很有趣的特性叫做表值參數(shù)(Table-Valued Parameter)。你能否給我們?cè)敿?xì)介紹一下我們可以如何利用這個(gè)新特性嗎?
專(zhuān)家解答:
表值參數(shù)確實(shí)是SQL Server 2008的一個(gè)新特性。顧名思義,表值參數(shù)表示你可以把一個(gè)表類(lèi)型作為參數(shù)傳遞到函數(shù)或存儲(chǔ)過(guò)程里。更高級(jí)的功能方面,表值參數(shù)的功能可以允許你向被聲明為T(mén)-SQL變量的表中導(dǎo)入數(shù)據(jù),然后把該表作為一個(gè)參數(shù)傳遞到存儲(chǔ)過(guò)程或函數(shù)中去。表值參數(shù)的優(yōu)點(diǎn)在于你可以向存儲(chǔ)過(guò)程或函數(shù)發(fā)送多行數(shù)據(jù),而無(wú)需向以前那樣必須聲明多個(gè)參數(shù)或者使用XML參數(shù)類(lèi)型來(lái)處理多行數(shù)據(jù)。據(jù)說(shuō),表值參數(shù)可以處理多達(dá)1000行數(shù)據(jù)。
我們?cè)谶@里將會(huì)介紹表值參數(shù),并舉一些簡(jiǎn)單的編碼例子來(lái)演示如何通過(guò)使用表值參數(shù)來(lái)完成以下任務(wù):
創(chuàng)建可以作為表值參數(shù)傳遞到函數(shù)或存儲(chǔ)過(guò)程的表類(lèi)型
創(chuàng)建使用表值參數(shù)的存儲(chǔ)過(guò)程
聲明表類(lèi)型,向該表導(dǎo)入數(shù)據(jù),并把它傳遞到存儲(chǔ)過(guò)程里
在數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用程序里的數(shù)據(jù)加載過(guò)程,我們一般會(huì)在維度處理過(guò)程中把源系統(tǒng)鍵對(duì)應(yīng)到代理鍵;然后使用代理鍵來(lái)識(shí)別數(shù)據(jù)倉(cāng)庫(kù)中的維度行。這樣對(duì)維度行進(jìn)行的每一個(gè)改動(dòng)都會(huì)存儲(chǔ)在一行帶有新代理鍵的新行中,我們就可以保存維度行的完整歷史記錄。當(dāng)對(duì)維度行進(jìn)行改動(dòng)或添加新行時(shí),我們只需要給源系統(tǒng)鍵添加一個(gè)新的代理鍵并在維度表里插入新的一行就可以了。在處理事實(shí)行(fact rows)時(shí),我們查找代理鍵并將其存儲(chǔ)在事實(shí)表中。查詢(xún)通過(guò)代理鍵連接事實(shí)表和維度表。由于多個(gè)事實(shí)表通常會(huì)索引至同一個(gè)維度(例如Customer),代理鍵查找功能可以給我們提供一個(gè)使用表值參數(shù)的很好的例子。我們可以在存儲(chǔ)過(guò)程中執(zhí)行一次代理鍵查找,然后在多個(gè)事實(shí)表的數(shù)據(jù)載入過(guò)程中調(diào)用這個(gè)代理鍵查找。
分享:如何有效防止Java程序源碼被人偷窺?Java程序的源代碼很容易被別人偷看,只要有一個(gè)反編譯器,任何人都可以分析別人的代碼。本文討論如何在不修改原有程序的情況下,通過(guò)加密技術(shù)保護(hù)源代碼。 一、為什么要加密? 對(duì)于傳統(tǒng)的C或
- sql 語(yǔ)句練習(xí)與答案
- 深入C++ string.find()函數(shù)的用法總結(jié)
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- sql刪除重復(fù)數(shù)據(jù)的詳細(xì)方法
- SQL SERVER 2000安裝教程圖文詳解
- 使用sql server management studio 2008 無(wú)法查看數(shù)據(jù)庫(kù),提示 無(wú)法為該請(qǐng)求檢索數(shù)據(jù) 錯(cuò)誤916解決方法
- SQLServer日志清空語(yǔ)句(sql2000,sql2005,sql2008)
- Sql Server 2008完全卸載方法(其他版本類(lèi)似)
- sql server 2008 不允許保存更改,您所做的更改要求刪除并重新創(chuàng)建以下表
- SQL Server 2008 清空刪除日志文件(瞬間日志變幾M)
- Win7系統(tǒng)安裝MySQL5.5.21圖解教程
- 將DataTable作為存儲(chǔ)過(guò)程參數(shù)的用法實(shí)例詳解
Mssql數(shù)據(jù)庫(kù)教程Rss訂閱編程教程搜索
Mssql數(shù)據(jù)庫(kù)教程推薦
- 怎樣處理SQL Server日志文件總結(jié)及日志滿(mǎn)的問(wèn)題
- 查詢(xún)表里有N組相同記錄的SQL語(yǔ)句
- SQL Server 2005中更改sa的用戶(hù)名的方法
- SQL Server查詢(xún)語(yǔ)句的使用
- sql server 還原數(shù)據(jù)庫(kù)時(shí)提示數(shù)據(jù)庫(kù)正在使用,無(wú)法進(jìn)行操作的解決方法
- 解決Mysql服務(wù)無(wú)法啟動(dòng)的1067錯(cuò)誤
- SQL SQL Server 2008中的新日期數(shù)據(jù)類(lèi)型
- SQL Server不能啟動(dòng)的常見(jiàn)故障[1][1]
- 如何將SQL 2000日志遷移到SQL Server 2008
- sql2005 日志清理 SQL2005壓縮清除日志的方法
猜你也喜歡看這些
- 更新text字段時(shí)出現(xiàn)Row size too large報(bào)錯(cuò)應(yīng)付措施
- 網(wǎng)站模板MySQL timestamp自動(dòng)更新時(shí)間
- MySQL筆記之連接查詢(xún)?cè)斀?/a>
- mysql導(dǎo)出數(shù)據(jù)庫(kù)幾種方法
- 在SQL Server的try...catch語(yǔ)句中獲取錯(cuò)誤消息代碼的的語(yǔ)句
- linux Xtrabackup安裝及使用方法
- MySQL自增列插入0值的解決方案
- MySQL:數(shù)據(jù)庫(kù)知識(shí)點(diǎn)
- SQLServer導(dǎo)出數(shù)據(jù)到MySQL實(shí)例介紹
- 網(wǎng)站模板:以數(shù)據(jù)庫(kù)字段分組顯示數(shù)據(jù)的sql語(yǔ)句
- 相關(guān)鏈接:
- 教程說(shuō)明:
Mssql數(shù)據(jù)庫(kù)教程-在SQL Server 2008中運(yùn)用表值參數(shù)(TVP)
。