CREATE TABLE (SQL Server Compact)
Cria uma nova tabela do Microsoft SQL Server Compact.
Sintaxe
CREATE TABLE table_name
( { < column_definition > | < table_constraint > } [ ,...n ]
)
< column_definition > ::=
{ column_name data_type }
[ { DEFAULT constant_expression
| [ IDENTITY [ ( seed , increment ) ]
]
} ]
[ ROWGUIDCOL ]
[ < column_constraint > [ ...n ] ]
< column_constraint > ::=
[ CONSTRAINT constraint_name ]
{ [ NULL | NOT NULL ]
| [ PRIMARY KEY | UNIQUE ]
| REFERENCES ref_table [ ( ref_column ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
}
< table_constraint > ::=
[ CONSTRAINT constraint_name ]
{ [ { PRIMARY KEY | UNIQUE }
{ ( column [ ,...n ] ) }
]
| FOREIGN KEY
( column [ ,...n ] )
REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
}
Argumentos
table_name
O nome da nova tabela. Os nomes de tabelas devem ser compatíveis com as regras para identificadores. O table_name deve ser exclusivo no banco de dados. Um table_name pode conter um máximo de 128ºcaracteres.column_name
O nome de uma coluna da tabela. Os nomes de colunas devem ser compatíveis com as regras para identificadores e ser exclusivos na tabela.Dica
Os nomes de colunas em bancos de dados do SQL Server Compact não devem começar com "__sys". Por exemplo, __sysobjects é um nome de coluna restrito.
data_type
Especifica o tipo de dados da coluna. Para obter informações sobre tipos de dados, consulte Tipos de dados e RDA.DEFAULT
Especifica o valor fornecido para a coluna quando um valor não é explicitamente fornecido durante uma ação de inserção. As definições DEFAULT podem ser aplicadas a qualquer coluna, exceto aquelas definidas pela propriedade IDENTITY. As definições DEFAULT são removidas quando a tabela é descartada. Um valor constante pode ser usado como padrão.IDENTITY
Indica que a nova coluna é uma coluna de identidade. Quando uma nova linha é adicionada à tabela, o SQL Server Compact fornece um valor exclusivo incremental para a coluna. As colunas de identidade, em geral, são usadas em conjunto com restrições PRIMARY KEY para servir de identificador exclusivo de linha para a tabela. A propriedade IDENTITY pode ser atribuída somente a colunas int. Apenas uma coluna de identidade pode ser criada para cada tabela. Não é possível usar padrões associados e restrições DEFAULT com uma coluna de identidade. Você deve especificar os valores de partida e incremento, ou nenhum deles. Se nenhum deles for especificado, o valor padrão será (1,1).seed
O valor usado para a primeira linha que é carregada na tabela.increment
O valor incremental adicionado ao valor de identidade da linha anterior que é carregada.ROWGUIDCOL
Indica que a nova coluna é uma coluna de identificador global exclusivo de linha. Somente uma coluna uniqueidentifier por tabela pode ser designada como coluna ROWGUIDCOL. A propriedade ROWGUIDCOL pode ser atribuída somente a uma coluna uniqueidentifier.ROWGUIDCOL gera automaticamente valores para as novas linhas inseridas na tabela.
CONSTRAINT
Um palavra-chave opcional indicando o início de uma definição de restrição PRIMARY KEY, UNIQUE ou FOREIGN KEY. As restrições são propriedades especiais que impõem a integridade de dados e criam tipos especiais de índices para a tabela e suas colunas.constraint_name
O nome de uma restrição. constraint_name é opcional e deve ser um valor exclusivo em um banco de dados. Se um constraint_name não for especificado, o SQL Server Compact gerará um nome de restrição.NULL | NOT NULL
Palavras-chave que especificam se valores nulos são permitidos na coluna. NULL não é exatamente uma restrição, mas pode ser especificada da mesma maneira que NOT NULL.PRIMARY KEY
Uma restrição que impõe a integridade de entidade para colunas ou uma coluna em particular usando um índice exclusivo. Apenas uma restrição PRIMARY KEY pode ser criada para cada tabela.UNIQUE
Uma restrição que fornece integridade de entidade para colunas ou uma coluna em particular usando um índice exclusivo. As colunas em uma restrição UNIQUE podem ser NULL, mas somente um valor NULL é permitido para cada coluna. Uma tabela pode ter várias restrições UNIQUE.Dica
O SQL Server Compact pode usar índices para impor as restrições PRIMARY KEY e UNIQUE. É recomendável que você não dependa desse comportamento nem tente modificar quaisquer índices criados como parte de uma restrição.
FOREIGN KEY...REFERENCES
Uma restrição que fornece integridade referencial para os dados da coluna. As restrições FOREIGN KEY requerem que cada valor da coluna exista na coluna especificada na tabela referenciada.ref_table
O nome da tabela referenciada pela restrição FOREIGN KEY.( ref_column [ ,...n ] )
Uma coluna, ou lista de colunas, da tabela referenciada pela restrição FOREIGN KEY.ON DELETE {CASCADE | NO ACTION}
Especifica a ação que ocorre em uma linha da tabela que é criada quando essa linha tem uma relação referencial e a linha referenciada é excluída da tabela pai. O padrão é NO ACTION.Se for especificado CASCADE, uma linha será excluída da tabela de referência quando a linha referenciada correspondente for excluída da tabela pai. Se for especificado NO ACTION, o SQL Server Compact retornará um erro e a ação de exclusão na linha referenciada na tabela pai será revertida.
ON UPDATE {CASCADE | NO ACTION}
Especifica a ação que ocorre em uma linha da tabela que é criada quando essa linha tem uma relação referencial e a linha referenciada é atualizada na tabela pai. O padrão é NO ACTION.Se for especificado CASCADE, a linha será atualizada na tabela de referência quando a linha referenciada correspondente for atualizada na tabela pai. Se for especificado NO ACTION, o SQL Server Compact retornará um erro e a ação de atualização na linha referenciada na tabela pai será revertida.
column
Uma coluna ou lista de colunas, entre parênteses, usada em restrições de tabela para indicar as colunas usadas na definição de restrição.
Comentários
Definições de coluna
Você deve especificar pelo menos uma definição de coluna ao criar uma tabela.
Restrições
Restrições PRIMARY KEY
Uma tabela pode conter apenas uma restrição PRIMARY KEY.
Cada PRIMARY KEY gera um índice.
Todas as colunas definidas em uma restrição PRIMARY KEY devem ser definidas como NOT NULL. Se a possibilidade de anulação não for especificada, todas as colunas participantes de uma restrição PRIMARY KEY terão sua possibilidade de anulação definida como NOT NULL.
Restrições UNIQUE
- Cada restrição UNIQUE gera um índice.
Restrições FOREIGN KEY
Quando um valor diferente de NULL é inserido na coluna de uma restrição FOREIGN KEY, o valor deve existir na coluna referenciada; caso contrário, é retornada uma mensagem de erro de violação de chave estrangeira.
As restrições FOREIGN KEY podem fazer referência a outra coluna na mesma tabela, o que é chamado de auto-referência. Entretanto, as restrições FOREIGN KEY não podem ser usadas para criar uma auto-referência ou referência FOREIGN KEY circular.
A cláusula REFERENCES de uma restrição FOREIGN KEY no nível de coluna pode listar somente uma coluna de referência. Essa coluna deve ter o mesmo tipo de dados que a coluna na qual a restrição está definida.
A cláusula REFERENCES de uma restrição FOREIGN KEY no nível de tabela deve ter o mesmo número de colunas de referência que a lista de colunas de restrição. O tipo de dados de cada coluna de referência também deve ser igual ao da coluna correspondente na lista de colunas.
As restrições FOREIGN KEY podem fazer referência somente a colunas em restrições PRIMARY KEY ou UNIQUE na tabela referenciada. As restrições FOREIGN KEY não podem fazer referência a índices exclusivos.
Informações adicionais sobre restrições
Um índice criado para uma restrição não pode ser descartado com a instrução DROP INDEX. A restrição deve ser descartada com a instrução ALTER TABLE DROP CONSTRAINT.
Os nomes de restrição devem seguir as regras para identificadores, exceto pelo fato de que o nome não pode iniciar com uma cerquilha (#). Se a palavra-chave CONSTRAINT e o constraint_name não forem fornecidos, será atribuído à restrição um nome gerado pelo sistema.
Quando uma restrição é violada em uma instrução INSERT, UPDATE ou DELETE, a instrução é interrompida.
Definições DEFAULT
Uma coluna só pode ter uma definição DEFAULT. Isso pode conter valores constantes ou funções constantes.
Regras de possibilidade de anulação em uma definição de tabela
A possibilidade de anulação de uma coluna determina se essa coluna poderia permitir um valor nulo (NULL) como seus dados. NULL não é zero ou em branco. Significa que nenhuma entrada foi feita ou um NULL explícito foi fornecido, e normalmente indica que o valor é desconhecido ou não aplicável.
Exemplo
Os seguintes exemplos mostram como:
Criar uma tabela de duas colunas com uma coluna de identidade como PRIMARY KEY.
Criar uma tabela de uma coluna com uma restrição PRIMARY KEY.
Criar uma tabela com uma de suas colunas fazendo referência a uma coluna de outra tabela.
CREATE TABLE MyCustomers (CustID int IDENTITY (100,1) PRIMARY KEY, CompanyName nvarchar (50))
CREATE TABLE MyCustomers2 (CustID int CONSTRAINT pkCustId PRIMARY KEY)
CREATE TABLE MyOrders (OrderID int, CustID int REFERENCES MyCustomers(CustID))