2011-05-06 20 views

Respuesta

14
CREATE TABLE Person(
P_Id int NOT NULL IDENTITY(1,1) PRIMARY KEY, 
Name varchar(255)) 

usted debe indicar explícitamente si es NAMENULL o NOT NULL por lo que no dependen de la current connection settings that happen to be in effect.

+0

Tuve un problema con 'AUTO_INCREMENT'. Lo reemplazó con 'IDENTIDAD (1,1)' y funcionó perfectamente. ¡Gracias! –

0
create table Person 
(
    PersonId int identity(1,1) 
     constraint PK_Person primary key, 
    Name varchar(255) not null 
) 

Algunos comentarios:

  1. no es necesaria para especificar not null para la columna de identidad como columna de identidad no pueden ser anulable. La opción ANSI_NULL_DFLT_ON no afecta la 'anulabilidad' de la columna de identidad.
  2. Por otro lado, es importante especificar 'no nulo/nulo' para la columna Nombre, ya que se verá afectado por el valor ANSI_NULL_DFLT_ON.
  3. Siempre es una buena idea especificar explícitamente los nombres de las restricciones. Porque si no lo hace, se generará el nombre de restricción de nombre. Si necesita eliminar la restricción más adelante, tendrá que averiguar el nombre generado automáticamente.
Cuestiones relacionadas