SQL Server запускает двойные значения при первой вставке - PullRequest
0 голосов
/ 19 мая 2019

Я создал триггер на Ames.Details для запуска Ames.Sqlclass, но когда я вставляю данные в Ames.Details, например, 'Ken', 'Math', 20, 'In', он показывает мне 40 знаков в Sqlclass.Syntax** ниже

CREATE SCHEMA Ames 
GO

CREATE TABLE Ames.SqlClass
(
    Name NVARCHAR(50),
    Subject NVARCHAR(50),
    Mark INT
)
GO

CREATE TABLE Ames.Details
(
    Name NVARCHAR(50),
    Subject NVARCHAR(50),
    Mark INT,
    Status NVARCHAR(20) 
)
GO

CREATE TRIGGER SQlDetails 
ON Ames.Details 
AFTER INSERT 
AS
BEGIN
    DECLARE @st INT, @Namesql NVARCHAR(50),
            @Subject NVARCHAR(50), @pt INT, @Status NVARCHAR(20)

    SELECT 
        @Namesql = i.Name, @Subject = i.subject,
        @pt = i.mark, @Status = I.Status 
    FROM
        inserted AS I

    IF NOT EXISTS (SELECT * FROM Ames.SqlClass  
                   WHERE @Namesql = Name AND @Subject = Subject)
    BEGIN
        INSERT INTO Ames.sqlClass (Name, Subject, Mark)
        VALUES (@Namesql, @Subject, @pt)
    END

    SELECT @st = Mark 
    FROM ames.SqlClass
    WHERE @Namesql = Name AND @Subject = Subject

    BEGIN
        IF @Status = 'IN'
        BEGIN
            SET @st = @st + @pt
        END

        IF @Status = 'Out' 
        BEGIN
            SET @st = @st - @pt
        END

        UPDATE Ames.SqlClass 
        SET Mark = @st 
        WHERE Name = @Namesql
    END
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...