就业数据资源平台
当前位置:首页 > 数据库技术
为SQLServer数据库传数组参数的变通办法(2)

  应该用SQL2000 OpenXML更简单,效率更高,代码更可读:
  CREATE Procedure [dbo].[ProductListUpdateSpecialList]
  (
  @ProductId_Array NVARCHAR(2000),
  @ModuleId INT
  )
  AS
  delete from ProductListSpecial where
  -- If empty, return
  IF (@ProductId_Array IS NULL OR LEN(LTRIM(RTRIM(@ProductId_Array))) = 0)
  RETURN
  DECLARE @idoc int
  EXEC sp_xml_preparedocument @idoc OUTPUT, @ProductId_Array
  Insert into ProductListSpecial (ModuleId,ProductId)
  Select
  @ModuleId,C.[ProductId]
  FROM
  OPENXML(@idoc, ’/Products/Product’, 3)
  with (ProductId int ) as C
  where
  C.[ProductId] is not null
  EXEC sp_xml_removedocument @idoc
就业数据资源平台