Insert en Servidor VInculado

02/09/2008 - 21:47 por Penta | Informe spam
Estimados.
Tengo un Servidor SS2000 SP4 y un SQL Express SP2

Pues bien en el SS2000 vincule el SQL Express con la clave SA.
En el Express cree una tabla llamada TEST con los siguientes campos:

[id] [int] IDENTITY (1, 1) NOT NULL
[UserName] [varchar] (50) NOT NULL

Pero al tratar de insertar campos desde el SS2000 mediante una
consulta tipo:

INSERT INTO [IP_DEL_SERVER].BD.dbo.TEST
Select 'usuario'
From TABLA

Me da el siguiente error:
Servidor: mensaje 213, nivel 16, estado 4, línea 1
Error de inserción: el nombre de columna o los valores especificados
no corresponden a la definición de la tabla.


Si la tabla la creo en el SS2000 y hago el insert funciona
correctamente.

Agradecería su ayuda.
PENTA.

Preguntas similare

Leer las respuestas

#1 Rubén Garrigós
02/09/2008 - 23:59 | Informe spam
Hola Penta,

Incluye el nombre de la columna al hacer el insert:

INSERT INTO [IP_DEL_SERVER].BD.dbo.TEST (UserName)
Select 'usuario'
From TABLA

Rubén Garrigós
Solid Quality Mentors

"Penta" wrote:

Estimados.
Tengo un Servidor SS2000 SP4 y un SQL Express SP2

Pues bien en el SS2000 vincule el SQL Express con la clave SA.
En el Express cree una tabla llamada TEST con los siguientes campos:

[id] [int] IDENTITY (1, 1) NOT NULL
[UserName] [varchar] (50) NOT NULL

Pero al tratar de insertar campos desde el SS2000 mediante una
consulta tipo:

INSERT INTO [IP_DEL_SERVER].BD.dbo.TEST
Select 'usuario'
From TABLA

Me da el siguiente error:
Servidor: mensaje 213, nivel 16, estado 4, línea 1
Error de inserción: el nombre de columna o los valores especificados
no corresponden a la definición de la tabla.


Si la tabla la creo en el SS2000 y hago el insert funciona
correctamente.

Agradecería su ayuda.
PENTA.

Respuesta Responder a este mensaje
#2 Penta
03/09/2008 - 00:53 | Informe spam
Ahora SI !!!!
Me podrian explicar porque ??

Saludos.
Penta.
Respuesta Responder a este mensaje
#3 Rubén Garrigós
03/09/2008 - 02:03 | Informe spam
Hola Penta,

El problema ocurre con el acceso a traves de OLE DB y el tipo de datos
IDENTITY. Si pruebas a hacer lo mismo sobre una tabla sin el IDENTITY verás
que sí funciona. Lo primero que hace al intentar realizar la operación es
obtener los metadatos de la tabla destino columna a columna. Al intentar
generar el cursor que utilizará para realizar la operación a traves de OLEDB
se encuentra que no le cuadra el número de columnas de origen con destino. Si
indicaras dos valores en la SELECT del INSERT ya no te daría ese error (le
coincidiría el número) y te diría algo así como que no puede
escribir/insertar datos en una columna de tipo identity.

Como buena práctica recomendaría indicar siempre el nombre de las columnas
al hacer los inserts.

Rubén Garrigós
Solid Quality Mentors

"Penta" wrote:

Ahora SI !!!!
Me podrian explicar porque ??

Saludos.
Penta.

Respuesta Responder a este mensaje
#4 Penta
03/09/2008 - 15:01 | Informe spam
Grande !!!!
Excelente respuesta muy aclaradora.

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