SQL查詢錯誤我已經定義在DEPT表約束,這將確保所有的管理人員有年齡> 30 我是初學,所以我不想使用用戶定義的函數。 這裏我想要一個簡單的解決方案。這可以將我的檢查應用於create table語句。 我想用支票陳述或斷言語句。在檢查聲明
create table emp(eid int primary key,ename varchar(20),age int,salary real CHECK (salary >= 10000));
create table dept(did int primary key, buget real,managerid int foreign key (managerid) references emp check ((select eid from emp where age >30)));
及其給下面的錯誤,我不知道爲什麼
Msg 156, Level 15, State 1, Line 54
Incorrect syntax near the keyword 'select'.
Msg 102, Level 15, State 1, Line 54
Incorrect syntax near ')'.
我使用Microsoft SQL管理工作室2014年
告訴我,我做的哪裏錯誤。 謝謝!
順便說一句,你不應該在'age'存儲爲一個固定值,因爲你需要每一次更新年齡變化。存儲出生日期,而不是'年齡'是一個計算列 – Lamak
看一看:http://stackoverflow.com/questions/3880698/can-a-check-constraint-relate-to-another-table或http ://stackoverflow.com/questions/13000698/sub-queries-in-check-constraint – etsa
什麼你所描述的是一個業務規則。不是數據完整性規則。因此,最好在應用程序層而不是數據庫層中實現該規則。 –