2017-06-03 128 views
0

我试图写一个触发器,但我需要帮助。我怎样才能写这种类型的触发器? 如果数据传入null,则插入此参数中? 还有就是我的代码MS SQL Server触发器if else insert

CREATE TRIGGER AddDayOn ON Control 
INSTEAD OF INSERT 
AS 
DECLARE @first DATETIME,@second DATETIME,@name NVARCHAR(11),@birth DATETIME 
SELECT @first = First, 
     @second = Second, 
     @name = Name, 
     @birth = Birth 
FROM inserted 
INSERT INTO Control(
Name, 
First, 
Birth, 
Second, 
Prob 
) 
VALUES 
(@name, 
@first, 
@birth, 
DATEADD(DAY,220,@first), 
DATEADD(DAY 250,@first)) 

我需要机会,这触发与IF-else.Because我有3个参数(四,五,六)。我试着写类似的东西

If @first not null DATEADD.. 
If @four not null DATEADD.. like that 
+1

欢迎堆栈溢出。请尽快阅读[关于]和[问]页面。当您询问SQL或DBMS时,请包含DBMS的标签 - 在本例中为[tag:sql-server]。还包括尽你最大的努力,并说明你在做什么,或试图做什么。理想情况下,这将是一个MCV E([MCVE])。现在,我们没有足够的信息来帮助你。 –

回答

0

你可以使用存在于你的说法是这样的:

insert into table1(col1,col2) 
select col1,col2 from inserted as i 
where not exists(select 0 from table1 where relatedkey=i.relatedkey) 
+0

我添加了我的代码。你能再看一次吗? – Oronar

+0

@Oronar我没有得到它与我的答案,如果数据为null你想插入什么值?我认为你只需要在数据为空时使用ISNULL来指定一个值。另一个想法,是否有可能会插入多行一次 –

+0

ISNULL(DATEADD(DAY,220,@ first),'Some default date') –