0
我需要分隔符|
分割字符串,那麼獲得的每一個值,我需要在名稱字段中插入相同的,像這樣:分割字符串在T-SQL和插入參數
下面是我的代碼來分割字符串。
DECLARE @SplitStringTable TABLE (Value nvarchar(MAX) NOT NULL)
DECLARE @StringToSplit nvarchar(MAX) = 'abc|def|gh|ijj'
DECLARE @SplitEndPos int
DECLARE @SplitValue nvarchar(MAX)
DECLARE @SplitDelim nvarchar(1) = '|'
DECLARE @SplitStartPos int = 1
SET @SplitEndPos = CHARINDEX(@SplitDelim, @StringToSplit, @SplitStartPos)
WHILE @SplitEndPos > 0
BEGIN
SET @SplitValue = SUBSTRING(@StringToSplit, @SplitStartPos, (@SplitEndPos - @SplitStartPos))
INSERT @SplitStringTable (Value) VALUES (@SplitValue)
SET @SplitStartPos = @SplitEndPos + 1
SET @SplitEndPos = CHARINDEX(@SplitDelim, @StringToSplit, @SplitStartPos)
END
BEGIN TRANSACTION T1
DECLARE @i int = 0
WHILE @i < @SplitEndPos
BEGIN
INSERT INTO Monitoring (UserId, Name, DateCreated)
VALUES (@UserId, @Name, getdate())
SET @i = @i + 1
END
COMMIT TRANSACTION T1
請幫忙,我該怎麼辦?
沒有必要訴諸循環的分裂字符串。請參閱這篇文章並更換您的字符串拆分器。 http://sqlperformance.com/2012/07/t-sql-queries/split-strings –
肖恩說,他發佈的鏈接是一篇文章,描述了在2012年之前的系統上拆分字符串的最快方法。如果您運行的是SQL Server 2012+,那麼這個版本的速度稍微快一些,可以利用LEAD分析功能:http://www.sqlservercentral.com/articles/SQL+Server+2012/106903/ –