SQL Server存儲過程中使用表值作為輸入?yún)?shù)示例
在2008之前如果我們想要將表作為輸入?yún)?shù)傳遞給SQL Server存儲過程使比較困難的,可能需要很多的邏輯處理將這些表數(shù)據(jù)作為字符串或者XML傳入。
在2008中提供了表值參數(shù)。使用表值參數(shù),可以不必創(chuàng)建臨時表或許多參數(shù),即可向 Transact-SQL 語句或例程(如存儲過程或函數(shù))發(fā)送多行數(shù)據(jù),這樣可以省去很多自定義的代碼。這樣的操作對于存儲過程內(nèi)基于表函數(shù)的操作變得非常容易操作。
表值參數(shù)是使用用戶定義的表類型來聲明的。所以使用之前要先定義表類型。
/* 創(chuàng)建表類型.*/ CREATE TYPE LocationTableType AS TABLE ( LocationName VARCHAR(50) , CostRate INT ); GO /* 創(chuàng)建一個存儲過程以表值參數(shù)作為輸入. */ CREATE PROCEDURE dbo. usp_InsertProductionLocation @TVP LocationTableType READONLY AS SET NOCOUNT ON INSERT INTO Production.Location (Name ,CostRate ,Availability ,ModifiedDate) SELECT *, 0, GETDATE() FROM @TVP; GO /* 聲明表值參數(shù)變量.*/ DECLARE @LocationTVP ASLocationTableType; /* 將數(shù)據(jù)插入表值變量*/ INSERT INTO @LocationTVP(LocationName, CostRate) SELECT Name, 0.00 FROM Person.StateProvince; /* 將變量傳遞給存儲過程*/ EXEC usp_InsertProductionLocation@LocationTVP; GO
查詢表Production.Location可以看到數(shù)據(jù)已經(jīng)插入了。
相關(guān)文章
如何在navicat中利用sql語句建表+添加數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于如何在navicat中利用sql語句建表+添加數(shù)據(jù)的相關(guān)資料,Navicat是一套快速,專為簡化數(shù)據(jù)庫的管理及降低系統(tǒng)管理成本而設,它的設計符合數(shù)據(jù)庫管理員、開發(fā)人員及中小企業(yè)的需要,需要的朋友可以參考下2023-10-10SQL Server誤區(qū)30日談 第17天 有關(guān)頁校驗和的誤區(qū)
從舊的實例升級上來的數(shù)據(jù)庫不會自動開啟頁校驗和,除非你顯式使用ALTER DATABASE databasename SET PAGE_VERIFY CHECKSUM進行開啟。而在SQL Server 2005或2008新建的數(shù)據(jù)庫頁校驗和是默認開啟的2013-01-01sql server2008調(diào)試存儲過程的完整步驟
這篇文章主要給大家分享介紹了關(guān)于sql server2008調(diào)試存儲過程的完整步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-11-11SQL Server數(shù)據(jù)復制到的Access兩步走
以下的文章主要描述的是把SQL Server數(shù)據(jù)復制到的Access數(shù)據(jù)庫中的實際操作步驟,以及對其在實際操作中要用到的代碼描述。2015-09-09詳解安裝sql2012出現(xiàn)錯誤could not open key...解決辦法
這篇文章主要介紹了詳解安裝sql2012出現(xiàn)錯誤could not open key...解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11SQLServer用存儲過程實現(xiàn)插入更新數(shù)據(jù)示例
這篇文章主要介紹了SQLServer如何用存儲過程實現(xiàn)插入更新數(shù)據(jù),需要的朋友可以參考下2014-08-08SQLSERVER 本地查詢更新操作遠程數(shù)據(jù)庫的代碼
SQLSERVER 本地查詢更新操作遠程數(shù)據(jù)庫的代碼,需要的朋友可以參考下2012-11-11使用SSIS創(chuàng)建同步數(shù)據(jù)庫數(shù)據(jù)任務的方法
SSIS(SQL Server Integration Services)是用于生成企業(yè)級數(shù)據(jù)集成和數(shù)據(jù)轉(zhuǎn)換解決方案的平臺。使用 Integration Services 可解決復雜的業(yè)務問題,具體表現(xiàn)為:復制或下載文件,發(fā)送電子郵件以響應事件,更新數(shù)據(jù)倉庫,清除和挖掘數(shù)據(jù)以及管理 SQL Server 對象和數(shù)據(jù)2012-09-09