2013-12-20 6 views
1

Мне нужно добавить контрольное ограничение и требуется значение 0, если другое значение меньше 3. ok До сих пор я получил ответ, но он не устанавливается в мою БД. Здесь си Моя тестовая таблица и данные:SQL Check constraint againt 2 столбца

CREATE TABLE dbo.YourTable(Col1 INT, Col2 INT); 

insert into YourTable (Col1,Col2) SELECT 0, 5 
insert into YourTable (Col1,Col2) SELECT 1, 5 
insert into YourTable (Col1,Col2) SELECT 0, 3 
insert into YourTable (Col1,Col2) SELECT 0, 11 
insert into YourTable (Col1,Col2) SELECT 0, 4 
insert into YourTable (Col1,Col2) SELECT 0, 145 
insert into YourTable (Col1,Col2) SELECT 0, 10 
insert into YourTable (Col1,Col2) SELECT 0, 1 
insert into YourTable (Col1,Col2) SELECT 0, 6 
insert into YourTable (Col1,Col2) SELECT 0, 6 
insert into YourTable (Col1,Col2) SELECT 0, 2 
insert into YourTable (Col1,Col2) SELECT 0, 5 
insert into YourTable (Col1,Col2) SELECT 1, 3 
insert into YourTable (Col1,Col2) SELECT 0, 10 
insert into YourTable (Col1,Col2) SELECT 0, 10 


ALTER TABLE dbo.YourTable ADD CONSTRAINT TestConstraint 
CHECK ((Col1 = 0 AND Col2 <= 3) OR Col2 > 3) 
+3

Так что есть проблема, которую вы столкнулись при выполнении этого запроса? –

+0

Решение с ограничением, на которое был дан ответ, не работает. Я предоставил некоторые тестовые данные. Возможно, у меня есть настройка в базе данных, отличная от той, которая требуется для этой версии ограничения для установки. – Joe

+0

Что это значит, что ограничение не работает? Вы можете уточнить? – Lamak

ответ

4
CREATE TABLE dbo.YourTable(Col1 INT, Col2 INT); 

ALTER TABLE dbo.YourTable ADD CONSTRAINT TestConstraint 
CHECK ((Col1 = 0 AND Col2 <= 3) OR Col2 > 3); 
Смежные вопросы