Una duda sobre insert into

26/06/2004 - 00:34 por Roberto Londono | Informe spam
Hola amigos, tengo una duda, tengo una tabla X que tiene
15 columnas. De las cuales 2 son les declare valores por
defecto y otras dos son nulas en el valor (null esta
activado en las 4 Columnas).
Para llenar la tabla necesito realizar un Select a otra
tabla la cual me carga 10 columnas y la restante es ID
que es indenty.
Pero cuando hago insert into tabla X select ... me saca
el siguiente error.
Server: Msg 213, Level 16, State 4, Line 1
Insert Error: Column name or number of supplied values
does not match table definition.

Le quito las 4 columnas diferentes (2 de valores por
defecto y las 2 nulas) y inserta sin problema.
Pero necesito que esta tabla contenga las otras 4
columnas, no se si esque tengo que agregarle alguna
instrucion mas.

Muchas gracias por la ayuda y el tiempo.

Roberto Londono

Preguntas similare

Leer las respuestas

#1 Isaías
26/06/2004 - 01:13 | Informe spam
Especifique en el INSERT INTO que columnas va a afectar:


INSERT INTO MyTabla (col1, col2, col8, col23, col27)
SELECT COL1,COL2,COL8,COL23,COL27 FROM MyOtraTabla)
Respuesta Responder a este mensaje
#2 MAXI
26/06/2004 - 01:36 | Informe spam
y si mandas como haces el Insert?




Maxi

Buenos Aires - Argentina

Desarrollador .NET 3 Estrellas

Mail: Maxi_accotto[arroba]speedy.com.ar

MSN:


"Roberto Londono" escribió en el
mensaje news:2177901c45b04$a46b78c0$
Hola amigos, tengo una duda, tengo una tabla X que tiene
15 columnas. De las cuales 2 son les declare valores por
defecto y otras dos son nulas en el valor (null esta
activado en las 4 Columnas).
Para llenar la tabla necesito realizar un Select a otra
tabla la cual me carga 10 columnas y la restante es ID
que es indenty.
Pero cuando hago insert into tabla X select ... me saca
el siguiente error.
Server: Msg 213, Level 16, State 4, Line 1
Insert Error: Column name or number of supplied values
does not match table definition.

Le quito las 4 columnas diferentes (2 de valores por
defecto y las 2 nulas) y inserta sin problema.
Pero necesito que esta tabla contenga las otras 4
columnas, no se si esque tengo que agregarle alguna
instrucion mas.

Muchas gracias por la ayuda y el tiempo.

Roberto Londono
Respuesta Responder a este mensaje
#3 ulises
26/06/2004 - 02:13 | Informe spam
No logro entender cual es el problema, si especficas

insert into x select (10 campos )

en una tabla x de quince columnas, se asume implicitamente que estas
especificando las 15 columnas y como el select solo te devuelve 10
columnas te envía el mensaje de error, la forma de corregirlas es
agregando en el select los campos faltantes o especificando solo los
columnas correspondientes al select, en este último caso se verifica
que las columnas falntantes permitan nulos o tengan un default si eso
no se cumple te enviará también un mensaje de error. Si lo ves con un
ejemplo :

create table tabla1 ( clave int ,
campo1 char(1),
campo2 char(2) )
insert into tabla1 values ( 1, 'A','A' )
insert into tabla1 values ( 2, 'B','B' )
create table tabla2 ( sec int identity(1,1),
campo1 char(1) not null,
campo2 char(1) not null,
campo3 char(1) null default 'X',
campo4 char(1) null )

si tratas de hacer

insert into tabla2 select campo1, campo2 from tabla1

te envia el mensaje

Insert Error: Column name or number of supplied values does not match
table definition.

si haces

insert into tabla2 ( campo1, campo2 )
select campo1, campo2 from tabla1

te lo agregará correctamente y añadirá los nulos o defaults
correspondientes :

sec campo1 campo2 campo3 campo4
1 A A X NULL
2 B B X NULL

(2 row(s) affected)

Saludos,
Ulises

On Fri, 25 Jun 2004 15:34:56 -0700, "Roberto Londono"
wrote:

Hola amigos, tengo una duda, tengo una tabla X que tiene
15 columnas. De las cuales 2 son les declare valores por
defecto y otras dos son nulas en el valor (null esta
activado en las 4 Columnas).
Para llenar la tabla necesito realizar un Select a otra
tabla la cual me carga 10 columnas y la restante es ID
que es indenty.
Pero cuando hago insert into tabla X select ... me saca
el siguiente error.
Server: Msg 213, Level 16, State 4, Line 1
Insert Error: Column name or number of supplied values
does not match table definition.

Le quito las 4 columnas diferentes (2 de valores por
defecto y las 2 nulas) y inserta sin problema.
Pero necesito que esta tabla contenga las otras 4
columnas, no se si esque tengo que agregarle alguna
instrucion mas.

Muchas gracias por la ayuda y el tiempo.

Roberto Londono
Respuesta Responder a este mensaje
#4 Anonimo
26/06/2004 - 06:27 | Informe spam
Isaias, Ulises, Maxi, Son una berraquera, me funciono con
la informacion que me dieron, muchas gracias, se los
agradesco de todo corazon que Dios los ilumine en su vida.
es mi mas grande deseo para ustedes.
Roberto Londono.

Hola amigos, tengo una duda, tengo una tabla X que tiene
15 columnas. De las cuales 2 son les declare valores por
defecto y otras dos son nulas en el valor (null esta
activado en las 4 Columnas).
Para llenar la tabla necesito realizar un Select a otra
tabla la cual me carga 10 columnas y la restante es ID
que es indenty.
Pero cuando hago insert into tabla X select ... me saca
el siguiente error.
Server: Msg 213, Level 16, State 4, Line 1
Insert Error: Column name or number of supplied values
does not match table definition.

Le quito las 4 columnas diferentes (2 de valores por
defecto y las 2 nulas) y inserta sin problema.
Pero necesito que esta tabla contenga las otras 4
columnas, no se si esque tengo que agregarle alguna
instrucion mas.

Muchas gracias por la ayuda y el tiempo.

Roberto Londono
.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida