Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Adicionar várias restrições em uma instrução


Você tem três problemas:
  1. Você encerra a instrução com o ; no final da segunda linha de código.
  2. Você tem FOR MEMBER_ID na última instrução, que provavelmente deve ser FOR Sys_date .
  3. Você repete ADD mas não precisa .

Assumindo esta estrutura de tabela:
CREATE TABLE Member (MEMBER_ID BIGINT NOT NULL, Sys_date DATETIME);

Este DDL funcionará:
ALTER TABLE MEMBER
ADD CONSTRAINT U_MEMBERID UNIQUE(MEMBER_ID), primary key (MEMBER_ID),
    CONSTRAINT Sys_date DEFAULT GETDATE() FOR Sys_date;

Veja este sqlfiddle .

Você pode teoricamente também veja isso na página MSDN em ALTER TABLE , embora eu admita prontamente que essas especificações podem ser difíceis de ler. Aqui está uma facada em como eles explicam:
ALTER TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name 
{ 
    ALTER COLUMN column_name 
    -- Omitted....
    | ADD 
    { 
        <column_definition>
      | <computed_column_definition>
      | <table_constraint> 
      | <column_set_definition> 
    } [ ,...n ]
    -- Omitted....

O ADD palavra-chave ocorre uma vez, e o } [ ,...n ] bit informa que você pode repetir o bit entre {colchetes} n vezes, separados por um , .