Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-01-2013
giantonti giantonti is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 26
Poder: 0
giantonti Va por buen camino
Talking No puedo crear el CONTRAINT en SQL server 2005

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
 ;

/*Table structure for table dpalumnos */

/*Table structure for table dpsucursal */


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.
Responder Con Cita
  #2  
Antiguo 25-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por giantonti Ver Mensaje
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.
Pues crea antes la otra.
Responder Con Cita
  #3  
Antiguo 28-01-2013
giantonti giantonti is offline
Miembro
NULL
 
Registrado: ene 2013
Posts: 26
Poder: 0
giantonti Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Pues crea antes la otra.
lo estoy haciendo pero me da error

Msg 156, Level 15, State 1, Line 23
Incorrect syntax near the keyword 'CONSTRAINT'.

te envio la linea 23

Código SQL [-]
  CONSTRAINT DPSUCURSAL_DPALMACEN FOREIGN CREATE INDEX  (ALM_CODSUC) REFERENCES   dpsucursal (SUC_CODIGO) ON UPDATE CASCADE
 ;
Responder Con Cita
  #4  
Antiguo 30-01-2013
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No conozco los scripts de MS Sql. Supongo que será algo así:

Código SQL [-]
...
...
alm_codtra char(6) default null,
foreign key (almc_codsuc) references dpsucursal (suc_codigo)  );
...
...
Responder Con Cita
  #5  
Antiguo 30-01-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola giantonti.

No uso MS SQL Server, pero aquí: Transact-SQL Reference: ALTER TABLE, está la sintáxis y buscando en la página por CONSTRAINT hay varios ejemplos.

También revisa estos enlaces: MS SQL Server 2005 CONSTRAINT.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Crear y llamar DTS en SQL Server 2005 agustibaldo MS SQL Server 9 08-04-2009 01:53:57
No puedo restaurar base de datos SQL Server 2005 por codigo DANY MS SQL Server 2 26-03-2009 12:43:16
Como puedo crear tablas en SQL SERVER Alexandro Conexión con bases de datos 11 20-02-2009 17:37:59
conectar delphi 2005 con mssql server 2005 tebre Conexión con bases de datos 0 26-11-2008 19:16:47
Duda sobre Sql server 2005 y sql server 2005 ErenioDhG SQL 1 25-08-2006 01:41:14


La franja horaria es GMT +2. Ahora son las 06:33:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi