Insert into ? select campo lectura
Publicado por Bea (1 intervención) el 15/04/2009 10:45:50
Buenos días,
Necesito hacer un insert a una tabla que el campo Id es un pk, int, not null de solo lectura.
La sentencia select ya la tengo pero no puedo insertar los datos porque obtengo un mensaje de error.
Este seria el código utilizando el id:
insert into dbo.alm_clt_int_abonosutilizados_test
(id,idcentroabono,centroabono,abono,fecha,valorTTC,usuario,pc,tipo,ticketchecked,idcentrochecked,centrochecked)
SELECT
'',
T.SIT_CODE,
S.NOM,
R.BLE_NUM,
GETDATE(),
R.BLR_MT,
'ADMINISTRADOR',
'10.228.154.129',
'C',
'ABONO ANTIGUO',
'000',
'Central'
FROM
SITE AS S RIGHT OUTER JOIN
T_BL_ENTETE AS T ON S.CODE = T.SIT_CODE RIGHT OUTER JOIN
T_BL_REG AS R ON T.BLE_NUM = R.BLE_NUM
WHERE
R.TRE_CD = '9'
AND T.KSI_NOID > -1
AND YEAR(T.BLE_DT)<=2007
AND R.BLR_ACOAVO IS NULL
AND R.BLE_NUM NOT IN (SELECT ABONO FROM ESCENPPPSW1.INTRANET.dbo.alm_clt_int_abonosutilizados)
Y el mensaje de error este:
"Impossible d'insérer une valeur explicite dans la colonne identité de la table 'alm_clt_int_abonosutilizados_TEST' quand IDENTITY_INSERT est défini à OFF."
Y este otro código sería sin utilizar el id en el insert:
insert into dbo.alm_clt_int_abonosutilizados_test
(idcentroabono,centroabono,abono,fecha,valorTTC,usuario,pc,tipo,ticketchecked,idcentrochecked,centrochecked)
SELECT
T.SIT_CODE,
S.NOM,
R.BLE_NUM,
GETDATE(),
R.BLR_MT,
'ADMINISTRADOR',
'10.228.154.129',
'C',
'ABONO ANTIGUO',
'000',
'Central'
FROM
SITE AS S RIGHT OUTER JOIN
T_BL_ENTETE AS T ON S.CODE = T.SIT_CODE RIGHT OUTER JOIN
T_BL_REG AS R ON T.BLE_NUM = R.BLE_NUM
WHERE
R.TRE_CD = '9'
AND T.KSI_NOID > -1
AND YEAR(T.BLE_DT)<=2007
AND R.BLR_ACOAVO IS NULL
AND R.BLE_NUM NOT IN (SELECT ABONO FROM alm_clt_int_abonosutilizados)
El mensaje de error cambia:
"Dépassement de capacité lors de la conversion de numeric au type de données varchar.
L'instruction a été arrêtée."
¿Alguna idea de cómo insertar estos datos en la tabla y que el id lo ponga automáticamente?
Muchas gracias,
Necesito hacer un insert a una tabla que el campo Id es un pk, int, not null de solo lectura.
La sentencia select ya la tengo pero no puedo insertar los datos porque obtengo un mensaje de error.
Este seria el código utilizando el id:
insert into dbo.alm_clt_int_abonosutilizados_test
(id,idcentroabono,centroabono,abono,fecha,valorTTC,usuario,pc,tipo,ticketchecked,idcentrochecked,centrochecked)
SELECT
'',
T.SIT_CODE,
S.NOM,
R.BLE_NUM,
GETDATE(),
R.BLR_MT,
'ADMINISTRADOR',
'10.228.154.129',
'C',
'ABONO ANTIGUO',
'000',
'Central'
FROM
SITE AS S RIGHT OUTER JOIN
T_BL_ENTETE AS T ON S.CODE = T.SIT_CODE RIGHT OUTER JOIN
T_BL_REG AS R ON T.BLE_NUM = R.BLE_NUM
WHERE
R.TRE_CD = '9'
AND T.KSI_NOID > -1
AND YEAR(T.BLE_DT)<=2007
AND R.BLR_ACOAVO IS NULL
AND R.BLE_NUM NOT IN (SELECT ABONO FROM ESCENPPPSW1.INTRANET.dbo.alm_clt_int_abonosutilizados)
Y el mensaje de error este:
"Impossible d'insérer une valeur explicite dans la colonne identité de la table 'alm_clt_int_abonosutilizados_TEST' quand IDENTITY_INSERT est défini à OFF."
Y este otro código sería sin utilizar el id en el insert:
insert into dbo.alm_clt_int_abonosutilizados_test
(idcentroabono,centroabono,abono,fecha,valorTTC,usuario,pc,tipo,ticketchecked,idcentrochecked,centrochecked)
SELECT
T.SIT_CODE,
S.NOM,
R.BLE_NUM,
GETDATE(),
R.BLR_MT,
'ADMINISTRADOR',
'10.228.154.129',
'C',
'ABONO ANTIGUO',
'000',
'Central'
FROM
SITE AS S RIGHT OUTER JOIN
T_BL_ENTETE AS T ON S.CODE = T.SIT_CODE RIGHT OUTER JOIN
T_BL_REG AS R ON T.BLE_NUM = R.BLE_NUM
WHERE
R.TRE_CD = '9'
AND T.KSI_NOID > -1
AND YEAR(T.BLE_DT)<=2007
AND R.BLR_ACOAVO IS NULL
AND R.BLE_NUM NOT IN (SELECT ABONO FROM alm_clt_int_abonosutilizados)
El mensaje de error cambia:
"Dépassement de capacité lors de la conversion de numeric au type de données varchar.
L'instruction a été arrêtée."
¿Alguna idea de cómo insertar estos datos en la tabla y que el id lo ponga automáticamente?
Muchas gracias,
Valora esta pregunta


0