Crear Base datos con SQL Server Compact
Escrito por kriptus en Agosto 13th, 2008
La 1º Tabla
//desde aqui se inicia la primera transacción
string Sqlsql = “CREATE TABLE tblPub (”
+ “nomPub nvarchar DEFAULT ‘Nombre’ CONSTRAINT NomPubPKey PRIMARY
KEY NOT NULL, “
+ “precEsp bit DEFAULT 0, “
+ “metaHora smallint DEFAULT 0 )”;
La 2º Tabla
Sqlsql = “CREATE TABLE tblInf (”
+ “nomPub nvarchar DEFAULT ‘Nombre’”
+ “mes smallint DEFAULT 0 )”;
en la ayuda de SQL Server Compact sobre crear tablas aparece lo
siguiente ….
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 } ]
}
Â
Â
si quieres poner una relación desde la segunda tabla a la
primera, exigiendo que el campo “nomPub” de la segunda se refiera siempre a
un “nomPub” existente en la primera, crearÃas un “foreign key” como sigue:
CREATE TABLE tblInf (
nomPub nvarchar DEFAULT ‘Nombre’
CONSTRAINT Fk_Relacion REFERENCES tblInf(nomPub)
ON DELETE CASCADE ON UPDATE CASCADE,
mes smallint DEFAULT 0 )
En este ejemplo, además de la relación de clave externa, hemos añadido una
cláusula de borrado y actualización en cascada, de forma que si borras un
registro de la 1a tabla se borren todos los de la 2a que estén relacionados
con él, y lo mismo en caso de modificarlo. Por supuesto que esa parte es
opcional y se puede suprimir si no es ese el comportamiento que deseas.




