У меня есть этот раскол функции:После разделения строки нужно вставить, чтобы столбец таблицы
CREATE FUNCTION 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
GO
Я хочу использовать эту функцию в хранимой процедуре, процедура делает вставку:
INSERT INTO table1 (KEY, description)
VALUES (SELECT Ident_current('table2'),
SELECT item FROM webreports.Splitstring('A','B','C'))
Таблица целей состоит из двух столбцов Key
и Description
. Столбец Key
получен из другой таблицы столбцов идентификаторов, а столбец Description
должен быть вставлен из результата функции, подстроки.
Эта процедура не работает должным образом.
Отлично! спасибо за ваше быстрое решение – SivaRajini
@SivaRajini Пожалуйста, подумайте о замене функции 'SplitString'. –
Несомненно. Благодарю вас. – SivaRajini