Categorías
Donaciones

Todo el contenido es gratuito y en beneficio de la comunidad. Puedes reconocer el esfuerzo con una donación si lo deseas.

Inserte aquí su publicidad

A raíz de una pregunta surgida en el foro, aprovecho para hacer un breve post que recuerde esta funcionalidad, la posibilidad de capturar los registros de una operación DML para recuperarlos o tratarlos en general. La pregunta concreta en cuestión era cómo insertar un registro en una tabla a la que lo borras de otra:

http://social.msdn.microsoft.com/Forums/es-ES/be6b1c73-154b-41c4-9c35-d385d86e2083/como-hacer-para-que-antes-de-eliminar-un-registro-me-lo-inserte-en-otra-tabla?forum=sqlserveres

Habiendo varias alternativas, una es emplear la cláusula OUPUT. Tan fácil como esto:

CREATE TABLE dummy (Id int, campo varchar(10))
GO
CREATE TABLE Otra (Id int, campo varchar(10))
GO

INSERT dummy (Id, campo)
VALUES
(1, 'a'),
(2, 'b'),
(3, 'c'),
(4, 'd'),
(5, 'e')

GO

DELETE dummy
OUTPUT DELETED.* INTO Otra
WHERE Id = 3
GO

SELECT * FROM Otra
GO

Y ya está.

2 comentarios para “Borrar de una tabla e insertarlo en otra”

  • jesus says:

    buenas como estas tengo este sp me genera un error
    La conversión del valor varchar ‘20451688759 ‘ ha desbordado una columna int.
    cuando agrego al where dcodane=’+@ANEXO+’ SI LO QUITO NO ME SALE ESE ERROR QUE PODRIA HACER
    DE ANTEMANO GRACIAS

    USE [CONCAR]
    GO
    /****** Object: StoredProcedure [dbo].[CONCCOSTOS] Script Date: 03/04/2015 10:15:03 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[CONCCOSTOS](@EMP AS VARCHAR(4),@AÑO AS CHAR(2),@MES AS CHAR(2),@ANEXO AS VARCHAR(18),@CUENTA AS CHAR(3))
    AS
    DECLARE @SSQL AS NVARCHAR(4000)
    DECLARE @DETEMP AS VARCHAR(15)

    SET @DETEMP =’ccd’ + @EMP + @AÑO
    BEGIN

    SET @SSQL=’SELECT dsubdia as SD,dcompro as COMNUMERO,dcodane AS ANEXO,dtipdoc+” ”+dnumdoc AS DOCUMENTO,’
    SET @SSQL =@SSQL+ ‘convert(varchar(10),dfecdoc2,103) AS FECDOC,dxglosa AS GLOSA,dtipcam as TCAM,dusimpor AS MDOLARES,dmnimpor AS MNACIONAL ‘
    SET @SSQL =@SSQL+ ‘FROM ‘+ @DETEMP
    SET @SSQL =@SSQL+ ‘ WHERE MONTH(dfeccom)=’+@MES+’ AND NOT dsubdia =”31” AND dcodane =’+@ANEXO+’ AND dcuenta LIKE ”’+@CUENTA+ ‘%”’
    END
    Exec sp_executesql @SSQL
    SET NOCOUNT OFF

  • Luis Starlin Batista Tavarez says:

    Hola como estas? Hermano mira yo tengo una inquietud a la hora de instalar SQL server 2008.En realidad cuando empiezo a instalarlo no me salen errores ni nada de eso. Pasa cuando voy por el paso de instalar los archivos auxiliares del programa de instalación la barra verde debajo llega a completarse y entonces ahí ocurre el problema se cierran la ventana y no sigue, o sea no continua el siguiente paso, no pasa nada. Necesito ayuda. por favor!!!!!

Deja un comentario


Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies