2017-06-03 155 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') –