hola foro tengo sql server 2005, importe la estructura de unas tablas desde mysql dandome asi una lineas de codigo que corriendola en SQL SERVER deberia crearme las TABLAS. sin embargo a correr el proceso me da una serie de errores que hacen referencia a los index y a los contraint, trato de investigar las causas y me doy cuenta que en la secuencia de la sentencia para crear las tabla hace referencia a una segunda tabla que por el orden que esta en la secuencia aun no se ha creado y por eso da el error. envio un pedacito de la sentencia
Código SQL
[-]CREATE TABLE dpalmacen (
ALM_CODIGO char(3) default NULL,
ALM_DESCRI char(40) default NULL,
ALM_A_E char(4) default NULL,
ALM_A_S char(4) default NULL,
ALM_T_E char(4) default NULL,
ALM_T_S char(4) default NULL,
ALM_DIR1 char(40) default NULL,
ALM_DIR2 char(40) default NULL,
ALM_ENCARG char(40) default NULL,
ALM_CODARE char(4) default NULL,
ALM_TEL1 char(12) default NULL,
ALM_TEL2 char(12) default NULL,
ALM_TEL3 char(12) default NULL,
ALM_CODSUC char(6) default NULL,
ALM_ACTIVO tinyint(1) default NULL,
ALM_P_E char(4) default NULL,
ALM_P_S char(4) default NULL,
ALM_CODTRA char(6) default NULL);
CREATE INDEX DPALMACEN1 ON dpalmacen (ALM_CODIGO,ALM_CODSUC);
CREATE INDEX DPALMACEN2 ON dpalmacen (ALM_CODSUC);
CREATE INDEX DPALMACEN3 ON dpalmacen (ALM_CODSUC,ALM_CODIGO);
CONSTRAINT DPSUCURSAL_DPALMACEN FOREIGN CREATE INDEX (ALM_CODSUC) REFERENCES dpsucursal (SUC_CODIGO) ON UPDATE CASCADE
;
CREATE TABLE dpsucursal (
SUC_CODIGO char(6) NOT NULL default '',
SUC_DESCRI char(40) default NULL,
SUC_DIR1 char(30) default NULL,
SUC_DIR2 char(30) default NULL,
SUC_DIR3 char(30) default NULL,
SUC_TEL1 char(12) default NULL,
SUC_TEL2 char(12) default NULL,
SUC_TEL3 char(12) default NULL,
SUC_ENCARG char(40) default NULL,
SUC_CODARE char(4) default NULL,
SUC_ESTADO char(20) default NULL,
SUC_PAIS char(20) default NULL,
SUC_MUNICI char(20) default NULL,
SUC_PARROQ char(25) default NULL,
SUC_RIF char(12) default NULL,
SUC_NIT char(12) default NULL,
SUC_MAIL char(40) default NULL,
SUC_WEB char(40) default NULL,
SUC_EMPRES tinyint(1) default NULL,
SUC_FCHINI date default NULL,
SUC_FCHFIN date default NULL,
SUC_DIR4 char(40) default NULL,
SUC_TEL4 char(12) default NULL,
SUC_INVCSL tinyint(1) default NULL);
CREATE UNIQUE INDEX DPSUCURSAL ON dpsucursal (SUC_CODIGO)
;
Eso es solo un ejemplo, pero sin embargo elimino los contraint de la sentencia y creo la tabla simple sin ningun problema pensando que una vez creadas ambas tablas podria solucionarlo aplicando un ALTER TABLE, pero no he tenido exito.
Código SQL
[-] ALTER TABLE DPALMACEN
ADD CONSTRAINT DPSUCURSAL_DPALMACEN FOREIGN CREATE INDEX (ALM_CODSUC) REFERENCES dpsucursal (SUC_CODIGO) ON UPDATE CASCADE
Mucho sabria agradecer si pueden ayudarme con este problema que se esta presentando.