給SQL Server傳送陣列引數的變通辦法(轉)
給SQL Server傳送陣列引數的變通辦法(轉)[@more@]最近一直在做Dnn模組的開發,過程中碰到這麼一個問題,需要同時插入N條資料,不想在程式裡控制,但是SQL Sever又不支援陣列引數.所以只能用變通的辦法了.利用SQL Server強大的字串處理傳把陣列格式化為類似"1,2,3,4,5,6"。然後在儲存過程中用SubString配合CharIndex把分割開來.
詳細的儲存過程
詳細的儲存過程
CODE:
CREATE PROCEDURE dbo.ProductListUpdateSpecialList
@ProductId_Array varChar(800), @ModuleId int AS DECLARE @PointerPrev int DECLARE @PointerCurr int DECLARE @TId int Set @PointerPrev=1 set @PointerCurr=1 begin transaction Set NoCount ON delete from ProductListSpecial where ModuleId=@ModuleId Set @PointerCurr=CharIndex(',',@ProductId_Array,@PointerPrev+1) set @TId=cast(SUBSTRING(@ProductId_Array,@PointerPrev,@PointerCurr-@PointerPrev) as int) Insert into ProductListSpecial (ModuleId,ProductId) Values(@ModuleId,@TId) SET @PointerPrev = @PointerCurr while (@PointerPrev+1 < LEN(@ProductId_Array)) Begin Set @PointerCurr=CharIndex(',',@ProductId_Array,@PointerPrev+1) if(@PointerCurr> 0) Begin set @TId=cast(SUBSTRING(@ProductId_Array,@PointerPrev+1,@PointerCurr-@PointerPrev-1) as int) Insert into ProductListSpecial (ModuleId,ProductId) Values(@ModuleId,@TId) SET @PointerPrev = @PointerCurr End else Break End set @TId=cast(SUBSTRING(@ProductId_Array,@PointerPrev+1,LEN(@ProductId_Array)-@PointerPrev) as int) Insert into ProductListSpecial (ModuleId,ProductId) Values(@ModuleId,@TId) Set NoCount OFF if error=0 begin commit transaction end else begin rollback transaction end GO 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-962302/,如需轉載,請註明出處,否則將追究法律責任。
上一篇:
mysql常識和基本操作(轉)
請登入後發表評論
登入
全部評論
|
相關文章
- 給SQL Server儲存過程,傳送陣列引數的變通辦法SQLServer儲存過程陣列
- 為SQL Server資料庫傳陣列引數的變通辦法SQLServer資料庫陣列
- SQL Server效能分析引數 (轉)SQLServer
- [MVC]通過ViewData傳遞列表給JavaScript陣列MVCViewJavaScript陣列
- Java方法04:命令列傳遞引數、可變引數Java命令列
- MyBatis中foreach傳入引數為list、陣列、map的不同寫法MyBatis陣列
- 在COM中使用陣列引數-陣列指標 (轉)陣列指標
- c++ -- 二維陣列引數傳遞C++陣列
- Shell自學二(引數傳遞和陣列)陣列
- SQL Server 日誌傳送配置SQLServer
- Java 陣列的不同定義方式和陣列長度為可變引數Java陣列
- Nagios傳送告警的幾個關鍵引數【轉】iOS
- c# 方法引數_陣列引數C#陣列
- 在COM中使用陣列引數-ICollection (轉)陣列
- 【勝通 】mysql的引數變數MySql變數
- jdbctemplate呼叫儲存過程傳遞陣列引數JDBC儲存過程陣列
- 給出分數陣列,得到對應的名次陣列陣列
- SQL SERVER 2008傳遞表值引數SQLServer
- SQL Server 2008:傳遞表值引數SQLServer
- C#陣列引數C#陣列
- ajax傳遞引數給springmvc總結[轉]SpringMVC
- 傳送陣
- 在COM中使用陣列引數-SafeArray (轉)陣列
- Sql Server 的引數化查詢SQLServer
- SQL Server 的max degree of parallelism引數SQLServerParallel
- SQLBulkOperations及陣列作引數的SQLSQL陣列
- php中兩個網頁之間的變數傳送 (轉)PHP網頁變數
- Js傳遞陣列引數到後臺controller的方式JS陣列Controller
- SQL Server 全域性變數SQLServer變數
- MyBatis傳入多個引數,傳入陣列和列表資料的處理MyBatis陣列
- SQL Server中提前找到隱式轉換提升效能的辦法SQLServer
- Sql Server系列:Transact-SQL變數SQLServer變數
- Java後臺接收前端傳遞的陣列物件引數的處理Java前端陣列物件
- php 迴圈陣列引用傳值改變陣列本身的值PHP陣列
- SQL Server中的全域性變數SQLServer變數
- python實現給定一個數和陣列,求陣列中兩數之和為給定的數Python陣列
- 給vue元件傳遞物件或是陣列Vue元件物件陣列
- SQL SERVER 引數化選項SQLServer