我有一個需求,我得到一個字符串,如'1500,4444,7777'。這些是產品的ID。 現在我需要分割這個輸入,我已經有了分割功能。已嘗試使用循環也。拆分輸入參數並在存儲過程中輸出一個表
拆分ID後,我需要檢索輸入參數中發送的所有ID的ProductName及其GUID。我應該從SP返回一個ProductName和GUID的LIST,以便在Web方法中使用它。
產品表包含產品GUID,產品名稱和產品ID。現在我必須根據ID檢索GUID和Name。
我可以拆分產品ID,獲取產品名稱,但現在我堅持如何將產品名稱及其GUID添加到列表併發送。
請找到我嘗試到現在的SP。
CREATE PROCEDURE GetProductNamesByProductNumber
(@productNumberList nvarchar(max))
AS
BEGIN
SET NOCOUNT ON
DECLARE @Err int
DECLARE @pos int
DECLARE @len int
DECLARE @value varchar(8000)
DECLARE @prodName varchar(8000)
DECLARE @prodNames varchar(8000)
SET @productNumberList = @productNumberList + ','
SET @pos = 0
SET @len = 0
WHILE CHARINDEX(',', @productNumberList , @pos + 1) > 0
BEGIN
SET @len = CHARINDEX(',', @productNumberList , @pos + 1) - @pos
SET @value = SUBSTRING(@productNumberList , @pos, @len)
SELECT
@prodName = ProductName FROM Product
WHERE ProductNumber = @value
SET @pos = CHARINDEX(',', @productNumberList , @pos + @len) + 1
IF @prodNames <> ''
SET @prodNames += ',' + @prodName
ELSE
SET @prodNames= @prodName
END
DECLARE @output_table TABLE (
ProductName nvarchar(max)
)
INSERT @output_table
SELECT
*
FROM SplitString(@prodNames, ',')
SELECT * FROM @output_table
SET @Err = @@Error
RETURN @Err
END
GO
您應該使用分割函數並將其加入到產品表中。 –