當我們瀏覽SQL Server 2008的新特性的時候,我們發現一個很有趣的特性叫做表值參數(Table-Valued Parameter)。你能否給我們詳細介紹一下我們可以如何利用這個新特性嗎?
專家解答:
表值參數確實是SQL Server 2008的一個新特性。顧名思義,表值參數表示你可以把一個表類型作為參數傳遞到函數或存儲過程里。更高級的功能方面,表值參數的功能可以允許你向被聲明為T-SQL變量的表中導入數據,然后把該表作為一個參數傳遞到存儲過程或函數中去。表值參數的優點在于你可以向存儲過程或函數發送多行數據,而無需向以前那樣必須聲明多個參數或者使用XML參數類型來處理多行數據。據說,表值參數可以處理多達1000行數據。
我們在這里將會介紹表值參數,并舉一些簡單的編碼例子來演示如何通過使用表值參數來完成以下任務:
創建可以作為表值參數傳遞到函數或存儲過程的表類型
創建使用表值參數的存儲過程
聲明表類型,向該表導入數據,并把它傳遞到存儲過程里
在數據倉庫應用程序里的數據加載過程,我們一般會在維度處理過程中把源系統鍵對應到代理鍵;然后使用代理鍵來識別數據倉庫中的維度行。這樣對維度行進行的每一個改動都會存儲在一行帶有新代理鍵的新行中,我們就可以保存維度行的完整歷史記錄。當對維度行進行改動或添加新行時,我們只需要給源系統鍵添加一個新的代理鍵并在維度表里插入新的一行就可以了。在處理事實行(fact rows)時,我們查找代理鍵并將其存儲在事實表中。查詢通過代理鍵連接事實表和維度表。由于多個事實表通常會索引至同一個維度(例如Customer),代理鍵查找功能可以給我們提供一個使用表值參數的很好的例子。我們可以在存儲過程中執行一次代理鍵查找,然后在多個事實表的數據載入過程中調用這個代理鍵查找。
新聞熱點
疑難解答