最近一直在做Dnn模块的开发,过程中碰到这么一个问题,需要同时插入N条数据,不想在程序里控制,但是SQL Sever又不支持数组参数.所以只能用变通的办法了.利用SQL Server强大的字符串处理传把数组格式化为类似"1,2,3,4,5,6"。 然后在存储过程中用SubString配合CharIndex把分割开来 详细的存储过程 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 0delete 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