Я создал триггер на 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