2016-10-16 74 views
0

我是SQL新手,在SQL Server中工作。有一個名爲Employee的表,其列name, ssn, salary等我試圖編寫一個觸發器,插入行時檢查工資是高於$ 20000。如何使用觸發器創建條件SQL插入

如果它更高,那麼請插入,否則打印'薪水必須更高'。我已經做了一些研究,但找不到解決方案。

這是我在想什麼,但這不是肯定的工作。

create trigger lowSalary 
on EMPLOYEE 
INSTEAD OF INSERT 
AS 
BEGIN 
    SET NOCOUNT ON 
     INSERT INTO EMPLOYEE 

     IF salary < 20000 THEN 
      print 'salary must be > 20000' 
END 

此外,我不太瞭解這個instead of insert。我發現有人用在@馬丁·史密斯的評論此

INSTEAD OF INSERT 
AS 
BEGIN 
    SET NOCOUNT ON 
+3

你爲什麼試圖通過從觸發器中打印消息而不是添加檢查約束來做到這一點? –

+0

老師siad它必須觸發 –

回答

1

大廈:

看一看這個網頁上檢查約束: http://www.w3schools.com/sql/sql_check.asp

在你的情況,你可以創建這樣一個約束:

CONSTRAINT chk_Salary CHECK (salary > 20000) 
+0

以及事情是它必須觸發。 –