SQL Server - Inserción de datos de 1 tabla a otra - ayuda

   
Vista:

Inserción de datos de 1 tabla a otra - ayuda

Publicado por rafael Ivan rafael_reyess@hotmail.com (7 intervenciones) el 19/08/2015 21:27:05
Buenas tardes
Tengo una consulta, tengo este código

INSERT INTO T_SNTP
(APE,NOM,DNI,Estado)
SELECT APE,NOM,DNI,Estado
FROM Hoja1$;

Por ende es para insertar datos de una tabla a otra pero lo malo que me bota este mensaje :

"Mens 512, Nivel 16, Estado 1, Procedimiento Actualizar_Dato, Línea 14
La subconsulta ha devuelto más de un valor, lo que no es correcto cuando va a continuación de =, !=, <, <=, >, >= o cuando se utiliza como expresión."


Antes de ejecutar el código por ende me asegure que todos los datos sean iguales a la tabla destino

APE varchar(50)
NOM varchar(50)
DNI varchar(50)
Estado smallint
CodigoPecsa bigint

Pero aun ha pesar de eso no me ejecuta correctamente tal vez pensé que sea por el campo Estado o CodigoPecsa ya que lo había probado antes con otros campos y no hubo problema, me quedo a la espera de sus comentarios, gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Isaias

Inserción de datos de 1 tabla a otra - ayuda

Publicado por Isaias (3181 intervenciones) el 21/08/2015 00:11:52
¿Y que hay en la línea 14 del procedimiento?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Inserción de datos de 1 tabla a otra - ayuda

Publicado por rafael Ivan (7 intervenciones) el 21/08/2015 00:16:09
muchas gracias por la respuesta este fue el trigger que fue como una piedra en el zapato
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
create TRIGGER [dbo].[Actualizar_Dato]
   ON  [dbo].[T_SNTP]
   AFTER INSERT
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	declare @ID int
	declare @DNI varchar(50)
	declare @ESTADO smallint
	declare @IDWeb int
	select @IDWeb=0
	select @ESTADO=(Select Estado From Inserted)
	select @ID=(Select idSNTP From Inserted)
		select @DNI=(Select DNI From Inserted)
	select @IDWeb=(Select top 1 idSNTP from T_SNTP where DNI=@DNI and Estado=10)
	if @ESTADO=0
	begin
		if @IDWeb>0
		begin
			declare @APE varchar(50)
			declare @NOM varchar(50)
			declare @TELEF varchar(50)
			declare @DIREC varchar(50)
			declare @MAIL  varchar(50)
			select @APE=(Select APE from T_SNTP where idSNTP=@IDWeb)
			select @NOM=(Select NOM from T_SNTP where idSNTP=@IDWeb)
			select @TELEF=(Select TELEF from T_SNTP where idSNTP=@IDWeb)
			select @DIREC=(Select DIREC from T_SNTP where idSNTP=@IDWeb)
			select @MAIL=(Select MAIL from T_SNTP where idSNTP=@IDWeb)
			update dbo.T_SNTP set APE=@APE,NOM=@NOM,TELEF=@TELEF,DIREC=@DIREC,MAIL=@MAIL where idSNTP=@ID
		end
	end
END

esto fue lo que me molestaba, sinceramente, lo elimine, ingrese mis datos y lo regrese aunque nose porque se desencadenaba..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias

Inserción de datos de 1 tabla a otra - ayuda

Publicado por Isaias (3181 intervenciones) el 21/08/2015 21:56:09
Tu problema esta aquí

1
2
3
select @ESTADO=(Select Estado From Inserted)
select @ID=(Select idSNTP From Inserted)
select @DNI=(Select DNI From Inserted)

Estas asumiendo que en INSERTED hay un solo registro, ¿Qué pasa cuando insertas mas de un registro?

Pues INSERTED tendrá 2 o miles de registros

Platica que deseas hacer, tal vez te sugiera como hacerlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Inserción de datos de 1 tabla a otra - ayuda

Publicado por rafael Ivan (7 intervenciones) el 21/08/2015 22:18:48
cuando intento insertar mas de un registro no me deja... se cae y me manda el mensaje que indique al principio de este post
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar