PlotDirector/PlotLine/Sql/166_Phase26B_StructuralPovAudit.sql

52 lines
2.2 KiB
Transact-SQL

SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
IF COL_LENGTH(N'dbo.ManuscriptStructuralChapterSources', N'StructuralParsedJson') IS NULL
ALTER TABLE dbo.ManuscriptStructuralChapterSources ADD StructuralParsedJson nvarchar(max) NULL;
GO
IF COL_LENGTH(N'dbo.ManuscriptStructuralChapterSources', N'DefaultPovName') IS NULL
ALTER TABLE dbo.ManuscriptStructuralChapterSources ADD DefaultPovName nvarchar(200) NULL;
GO
IF COL_LENGTH(N'dbo.ManuscriptStructuralChapterSources', N'ExplicitNarratorName') IS NULL
ALTER TABLE dbo.ManuscriptStructuralChapterSources ADD ExplicitNarratorName nvarchar(200) NULL;
GO
CREATE OR ALTER PROCEDURE dbo.ManuscriptStructuralChapterSource_Save
@ChapterID int,
@ProjectID int,
@BookID int,
@SourceText nvarchar(max),
@SourceWordCount int,
@SourceCharacterCount int,
@ParagraphMapJson nvarchar(max) = NULL,
@StructuralParsedJson nvarchar(max) = NULL,
@DefaultPovName nvarchar(200) = NULL,
@ExplicitNarratorName nvarchar(200) = NULL
AS
BEGIN
SET NOCOUNT ON;
MERGE dbo.ManuscriptStructuralChapterSources AS target
USING (SELECT @ChapterID AS ChapterID) AS source
ON target.ChapterID = source.ChapterID
WHEN MATCHED THEN
UPDATE SET ProjectID = @ProjectID,
BookID = @BookID,
SourceText = @SourceText,
SourceWordCount = @SourceWordCount,
SourceCharacterCount = @SourceCharacterCount,
ParagraphMapJson = @ParagraphMapJson,
StructuralParsedJson = COALESCE(@StructuralParsedJson, StructuralParsedJson),
DefaultPovName = COALESCE(NULLIF(LTRIM(RTRIM(@DefaultPovName)), N''), DefaultPovName),
ExplicitNarratorName = COALESCE(NULLIF(LTRIM(RTRIM(@ExplicitNarratorName)), N''), ExplicitNarratorName),
UpdatedUtc = SYSUTCDATETIME()
WHEN NOT MATCHED THEN
INSERT (ChapterID, ProjectID, BookID, SourceText, SourceWordCount, SourceCharacterCount, ParagraphMapJson, StructuralParsedJson, DefaultPovName, ExplicitNarratorName)
VALUES (@ChapterID, @ProjectID, @BookID, @SourceText, @SourceWordCount, @SourceCharacterCount, @ParagraphMapJson, @StructuralParsedJson, NULLIF(LTRIM(RTRIM(@DefaultPovName)), N''), NULLIF(LTRIM(RTRIM(@ExplicitNarratorName)), N''));
END;
GO