В SQL Server 2005, как я устанавливаю столбец целых чисел для обеспечения значений, больше, чем 0?

const { concat, interval, of, from } = rxjs;
const { share, delay, toArray, takeUntil, mergeMap } = rxjs.operators;

const waitUntil = signal$ => source$ => {
  const sharedSource$ = source$.pipe(share());
  return concat(
    sharedSource$.pipe(
      takeUntil(signal$),
      toArray(),
      mergeMap(from)
    ),
    sharedSource$
  );
}

const stopWaiting$ = of('signal').pipe(delay(2000));

const source$ = interval(500).pipe(
    waitUntil(stopWaiting$)
).subscribe(console.log);
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.3.3/rxjs.umd.js"></script>

7
задан Andy Lester 20 October 2008 в 20:15
поделиться

4 ответа

Можно использовать проверочное ограничение на столбец. IIRC синтаксис для этого похож:

create table foo (
    [...]
   ,Foobar int not null check (Foobar > 0)
    [...]
)

Как в плакате ниже говорится (благодарит Constantin), необходимо создать проверочное ограничение вне определения таблицы и дать ему понятное имя, таким образом, это очевидно, к какому столбцу он относится.

alter table foo
  add constraint Foobar_NonNegative
      check (Foobar > 0)

Можно вынуть текст проверочных ограничений из системного словаря данных в sys.check_constraints:

select name
      ,description
  from sys.check_constraints
 where name = 'Foobar_NonNegative'
15
ответ дан 6 December 2019 в 09:23
поделиться

Создайте ограничение базы данных:

ALTER TABLE Table1 ADD CONSTRAINT Constraint1 CHECK (YourCol > 0)

У Вас могут быть довольно сложные ограничения, также включающие несколько столбцов. Например:

ALTER TABLE Table1 ADD CONSTRAINT Constraint2 CHECK (StartDate<EndDate OR EndDate IS NULL)
5
ответ дан 6 December 2019 в 09:23
поделиться

Добавьте a CHECK ограничение при составлении таблицы

CREATE TABLE Test(
      [ID] [int]  NOT NULL,
      [MyCol] [int] NOT NULL CHECK (MyCol > 1)
)
0
ответ дан 6 December 2019 в 09:23
поделиться

Я полагаю, что Вы хотите добавить ОГРАНИЧЕНИЕ к полю таблицы:

ALTER TABLE tableName WITH NOCHECK
ADD CONSTRAINT constraintName CHECK (columnName > 0)

Тот дополнительный NOCHECK используется, чтобы помешать ограничению применяться к существующим строкам данных (который мог содержать недопустимые данные) и позволить ограничению быть добавленным.

0
ответ дан 6 December 2019 в 09:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: