Click here to Skip to main content
15,867,686 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
How to solve this problem if condition is yes insert ino X ELSE INSERT Y.
alter trigger trg_Student_Insert
on test
for insert
as
begin
--select * from inserted
 declare @Taken nvarchar
 select @Taken=Taken from inserted

 if (@Taken = 'Yes')
 begin
 insert into TrgTest
   values (
	'Waa qaatay Alaabtii = '
			+
	CAST(@Taken as nvarchar(30))
			+
	' Taarikhdu mar kay ahayd '
			+
	CAST (GETDATE () as nvarchar (30))
        )
end
 else if(@Taken = 'No')
 begin
 insert into Muqadan
   values (
	'Muuqaadan Alaabtii = '
			+
	CAST(@Taken as nvarchar(30))
			+
	' is Registred date markuu ahaa '
			+
	CAST (GETDATE () as nvarchar (30))
        )
	end	
End


What I have tried:

How to solve this problem if condition is yes insert ino X ELSE INSERT Y.
<pre>alter trigger trg_Student_Insert
on test
for insert
as
begin
--select * from inserted
 declare @Taken nvarchar
 select @Taken=Taken from inserted

 if (@Taken = 'Yes')
 begin
 insert into TrgTest
   values (
	'Waa qaatay Alaabtii = '
			+
	CAST(@Taken as nvarchar(30))
			+
	' Taarikhdu mar kay ahayd '
			+
	CAST (GETDATE () as nvarchar (30))
        )
end
 else if(@Taken = 'No')
 begin
 insert into Muqadan
   values (
	'Muuqaadan Alaabtii = '
			+
	CAST(@Taken as nvarchar(30))
			+
	' is Registred date markuu ahaa '
			+
	CAST (GETDATE () as nvarchar (30))
        )
	end	
End
Posted
Updated 23-Aug-22 0:56am
Comments
Wendelius 21-Aug-22 1:02am    
What is the exact problem you're having, getting an error message or something else?
Herman<T>.Instance 22-Aug-22 5:56am    
case when......

Declare @Taken as nvarchar(3), I think it's being truncated to one char.
 
Share this answer
 
Comments
Maciej Los 22-Aug-22 14:50pm    
5ed!
Bear in mind that the trigger will fire once for all rows affected in a batch. If you ever insert more than one row into your table in a single batch, your trigger will not work as expected.

Update your trigger to account for multiple rows:
SQL
ALTER TRIGGER trg_Student_Insert
ON test
FOR insert
As
BEGIN
    -- Prevent the trigger from altering the "affected rows" count:
    SET NOCOUNT ON;
    
    INSERT INTO TrgTest
    SELECT
        'Waa qaatay Alaabtii = '
        + CAST(Taken as nvarchar(30))
        + ' Taarikhdu mar kay ahayd '
        + CAST(GETDATE() as nvarchar(30))
    FROM
        inserted
    WHERE
        Taken = 'Yes'
    ;
    
    INSERT INTO Muqadan
    SELECT
        'Muuqaadan Alaabtii = '
        + CAST(Taken as nvarchar(30))
        + ' is Registred date markuu ahaa '
        + CAST(GETDATE() as nvarchar(30))
    FROM
        inserted
    WHERE
        Taken = 'No'
    ;
END
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900