這裏是要插入的存儲過程。在while循環中將多行保存在SQL Server中之後
CREATE PROCEDURE [dbo].[SP_SaveMail]
@Subject NVARCHAR(550),
@Message NVARCHAR(550),
@ParentID INT,
@SenderID INT,
@SenderType INT,
@ReceiverID NVARCHAR(MAX),
@ReceiverType INT
AS
BEGIN
DECLARE @MailID INT
INSERT INTO [dbo].[tbl_Mail] (Subject, Message, ParentID, IsRead, IsDeleted)
VALUES (@Subject, @Message, @ParentID, 0, 0)
SET @MailID = (SELECT @@identity)
if (@MailID > 0)
-- After this I want to split the @ReceiverID
-- The code to split the @ReceiverID is [dbo].SplitString(@ReceiverID, ',')
-- After split I want to insert it into the table [dbo].[tbl_Mail_Mapping] one by one through for loop or while loop.
-- BEGIN
-- DECLARE @tags NVARCHAR(400)
-- SET @tags = ([dbo].SplitString(@ReceiverID, ','))
-- WHILE LEN(@tags) > 0
-- BEGIN
-- INSERT INTO [dbo].[tbl_Mail_Mapping](MailID, SenderID, SenderType, ReceiverID, ReceiverType)
-- VALUES (@MailID, @SenderID, @SenderType, @tags, @ReceiverType)
-- END
END
下面是代碼分裂:
ALTER FUNCTION [dbo].[SplitString]
(@Input NVARCHAR(MAX),
@Character CHAR(1))
RETURNS @Output TABLE (Item NVARCHAR(1000))
AS
BEGIN
DECLARE @StartIndex INT, @EndIndex INT
SET @StartIndex = 1
IF SUBSTRING(@Input, LEN(@Input) - 1, LEN(@Input)) <> @Character
BEGIN
SET @Input = @Input + @Character
END
WHILE CHARINDEX(@Character, @Input) > 0
BEGIN
SET @EndIndex = CHARINDEX(@Character, @Input)
INSERT INTO @Output(Item)
SELECT SUBSTRING(@Input, @StartIndex, @EndIndex - 1)
SET @Input = SUBSTRING(@Input, @EndIndex + 1, LEN(@Input))
END
RETURN
END
誰能告訴我怎麼能寫拆分後while循環,並插入查詢插入到表?
注意:@ReceiverID
看起來像這樣:3,2,5
即在這裏,我通過調用[dbo].SplitString(@ReceiverID, ',')
拆分@ReceiverID
。拆分後,它會返回像物品欄3 2 5
請參考此截圖表:
拆分後誰能告訴我怎麼寫while循環保存?
分離後如何使用while循環...來保存數據? – asasasaa
**錯字**警報 - 這是一個**接收器** - 在「我」之前的「e」(不是「接收者」....) –