28 lines
726 B
Transact-SQL
28 lines
726 B
Transact-SQL
SET ANSI_NULLS ON;
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON;
|
|
GO
|
|
|
|
CREATE OR ALTER PROCEDURE dbo.Scene_SavePurposes
|
|
@SceneID int,
|
|
@PurposeIds nvarchar(max)
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
|
|
DELETE FROM dbo.ScenePurposes WHERE SceneID = @SceneID;
|
|
|
|
INSERT dbo.ScenePurposes (SceneID, ScenePurposeTypeID)
|
|
SELECT DISTINCT @SceneID, parsed.ScenePurposeTypeID
|
|
FROM
|
|
(
|
|
SELECT TRY_CAST(value AS int) AS ScenePurposeTypeID
|
|
FROM STRING_SPLIT(ISNULL(@PurposeIds, N''), N',')
|
|
) parsed
|
|
INNER JOIN dbo.ScenePurposeTypes spt ON spt.ScenePurposeTypeID = parsed.ScenePurposeTypeID
|
|
WHERE parsed.ScenePurposeTypeID IS NOT NULL
|
|
AND parsed.ScenePurposeTypeID > 0
|
|
AND spt.IsArchived = 0;
|
|
END;
|
|
GO
|