INSERT to a table from a database to other (same SQL Server) using Dynamic SQL The Next CEO of Stack OverflowHow to Dynamically change the database using TSQLHow the indexes are managed?Script to query multiple instancesHow to avoid using variables in WHERE clauseOracle GoldenGate add trandata errorsCreate A View Using Dynamic SqlDynamic Pivot SQL tableSyntax Error HelpInvestigating errors from strange queryDynamic SQL isn't updating tableHow to copy all Database from Source to Destination server along with login credentials?

What steps are necessary to read a Modern SSD in Medieval Europe?

Break Away Valves for Launch

Is wanting to ask what to write an indication that you need to change your story?

Some questions about different axiomatic systems for neighbourhoods

Why, when going from special to general relativity, do we just replace partial derivatives with covariant derivatives?

Are police here, aren't itthey?

How did people program for Consoles with multiple CPUs?

How to count occurrences of text in a file?

Why doesn't UK go for the same deal Japan has with EU to resolve Brexit?

is it ok to reduce charging current for li ion 18650 battery?

Is this "being" usage is essential?

How to get from Geneva Airport to Metabief?

Can MTA send mail via a relay without being told so?

Help understanding this unsettling image of Titan, Epimetheus, and Saturn's rings?

Is there a way to save my career from absolute disaster?

Is there a difference between "Fahrstuhl" and "Aufzug"

How do I align (1) and (2)?

Which one is the true statement?

What does "Its cash flow is deeply negative" mean?

unclear about Dynamic Binding

A Man With a Stainless Steel Endoskeleton (like The Terminator) Fighting Cloaked Aliens Only He Can See

Newlines in BSD sed vs gsed

Domestic-to-international connection at Orlando (MCO)

Why is information "lost" when it got into a black hole?



INSERT to a table from a database to other (same SQL Server) using Dynamic SQL



The Next CEO of Stack OverflowHow to Dynamically change the database using TSQLHow the indexes are managed?Script to query multiple instancesHow to avoid using variables in WHERE clauseOracle GoldenGate add trandata errorsCreate A View Using Dynamic SqlDynamic Pivot SQL tableSyntax Error HelpInvestigating errors from strange queryDynamic SQL isn't updating tableHow to copy all Database from Source to Destination server along with login credentials?










3















I need to copy a record from a Database DBa, Table Tbl1 to Database DBx, Table Tbl1 and get the Scope Identity inside the same SQL Server 2005 server



I have already checked this:
How to Dynamically change the database using TSQL



but my issue is more complicated.



I do want just to execute something in the DBx being inside DBa.
I want to copy a record from one database to one of the other (same) databases in the same server and get the scope_identity back.



The Dynamic SQL is a string. What do we do when we want to copy variables of other datatypes as well?



Example code:



CREATE PROCEDURE dbo.pr_consolidation_copy_group @group_id numeric(10,0),@database_to varchar(100)
AS

DECLARE @group_name char(100),@arrival datetime,@departure datetime,@contact_id char(82)

SELECT @group_name = group_name ,
@arrival = arrival,
@departure = departure,
@contact_id = contact_id
FROM grp
WHERE group_id = @group_id


DECLARE @exec nvarchar(max) = QUOTENAME(@database_to) + N'.sys.sp_executesql',
@sql nvarchar(max) = N'INSERT grp(group_name, arrival, departure, contact_id)
SELECT @group_name, @arrival, @departure, @contact_id;SELECT SCOPE_IDENTITY()'; //How do we handle the variables?

EXEC @exec @sql;
go


Get all variables to string and put CONVERT inside the Dynamic SQL?
I hope I can find another solution because my table is around 300 columns :(










share|improve this question




























    3















    I need to copy a record from a Database DBa, Table Tbl1 to Database DBx, Table Tbl1 and get the Scope Identity inside the same SQL Server 2005 server



    I have already checked this:
    How to Dynamically change the database using TSQL



    but my issue is more complicated.



    I do want just to execute something in the DBx being inside DBa.
    I want to copy a record from one database to one of the other (same) databases in the same server and get the scope_identity back.



    The Dynamic SQL is a string. What do we do when we want to copy variables of other datatypes as well?



    Example code:



    CREATE PROCEDURE dbo.pr_consolidation_copy_group @group_id numeric(10,0),@database_to varchar(100)
    AS

    DECLARE @group_name char(100),@arrival datetime,@departure datetime,@contact_id char(82)

    SELECT @group_name = group_name ,
    @arrival = arrival,
    @departure = departure,
    @contact_id = contact_id
    FROM grp
    WHERE group_id = @group_id


    DECLARE @exec nvarchar(max) = QUOTENAME(@database_to) + N'.sys.sp_executesql',
    @sql nvarchar(max) = N'INSERT grp(group_name, arrival, departure, contact_id)
    SELECT @group_name, @arrival, @departure, @contact_id;SELECT SCOPE_IDENTITY()'; //How do we handle the variables?

    EXEC @exec @sql;
    go


    Get all variables to string and put CONVERT inside the Dynamic SQL?
    I hope I can find another solution because my table is around 300 columns :(










    share|improve this question


























      3












      3








      3








      I need to copy a record from a Database DBa, Table Tbl1 to Database DBx, Table Tbl1 and get the Scope Identity inside the same SQL Server 2005 server



      I have already checked this:
      How to Dynamically change the database using TSQL



      but my issue is more complicated.



      I do want just to execute something in the DBx being inside DBa.
      I want to copy a record from one database to one of the other (same) databases in the same server and get the scope_identity back.



      The Dynamic SQL is a string. What do we do when we want to copy variables of other datatypes as well?



      Example code:



      CREATE PROCEDURE dbo.pr_consolidation_copy_group @group_id numeric(10,0),@database_to varchar(100)
      AS

      DECLARE @group_name char(100),@arrival datetime,@departure datetime,@contact_id char(82)

      SELECT @group_name = group_name ,
      @arrival = arrival,
      @departure = departure,
      @contact_id = contact_id
      FROM grp
      WHERE group_id = @group_id


      DECLARE @exec nvarchar(max) = QUOTENAME(@database_to) + N'.sys.sp_executesql',
      @sql nvarchar(max) = N'INSERT grp(group_name, arrival, departure, contact_id)
      SELECT @group_name, @arrival, @departure, @contact_id;SELECT SCOPE_IDENTITY()'; //How do we handle the variables?

      EXEC @exec @sql;
      go


      Get all variables to string and put CONVERT inside the Dynamic SQL?
      I hope I can find another solution because my table is around 300 columns :(










      share|improve this question
















      I need to copy a record from a Database DBa, Table Tbl1 to Database DBx, Table Tbl1 and get the Scope Identity inside the same SQL Server 2005 server



      I have already checked this:
      How to Dynamically change the database using TSQL



      but my issue is more complicated.



      I do want just to execute something in the DBx being inside DBa.
      I want to copy a record from one database to one of the other (same) databases in the same server and get the scope_identity back.



      The Dynamic SQL is a string. What do we do when we want to copy variables of other datatypes as well?



      Example code:



      CREATE PROCEDURE dbo.pr_consolidation_copy_group @group_id numeric(10,0),@database_to varchar(100)
      AS

      DECLARE @group_name char(100),@arrival datetime,@departure datetime,@contact_id char(82)

      SELECT @group_name = group_name ,
      @arrival = arrival,
      @departure = departure,
      @contact_id = contact_id
      FROM grp
      WHERE group_id = @group_id


      DECLARE @exec nvarchar(max) = QUOTENAME(@database_to) + N'.sys.sp_executesql',
      @sql nvarchar(max) = N'INSERT grp(group_name, arrival, departure, contact_id)
      SELECT @group_name, @arrival, @departure, @contact_id;SELECT SCOPE_IDENTITY()'; //How do we handle the variables?

      EXEC @exec @sql;
      go


      Get all variables to string and put CONVERT inside the Dynamic SQL?
      I hope I can find another solution because my table is around 300 columns :(







      sql-server dynamic-sql






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 3 hours ago







      PanosPlat

















      asked 4 hours ago









      PanosPlatPanosPlat

      2571410




      2571410




















          1 Answer
          1






          active

          oldest

          votes


















          3














          Unless I am mistaken, your problem is not as complicated as you think. From what I understand, you want to take some data from your current database, store it in variables and then insert that into another database, returning the id that was inserted. If so, this will do what you need:



          CREATE PROCEDURE dbo.pr_consolidation_copy_group (
          @group_id numeric(10,0),
          @database_to varchar(100)
          )
          AS
          SET NOCOUNT ON;

          DECLARE @group_name char(100)
          ,@arrival datetime
          ,@departure datetime
          ,@contact_id char(82);

          SELECT @group_name = group_name ,
          @arrival = arrival,
          @departure = departure,
          @contact_id = contact_id
          FROM grp
          WHERE group_id = @group_id;

          DECLARE @sql_cmd NVARCHAR(MAX);
          SET @sql_cmd = 'USE ' + QUOTENAME(@database_to) + ';'
          + 'INSERT grp(group_name, arrival, departure, contact_id)'
          + 'SELECT @group_name, @arrival, @departure, @contact_id;'
          + 'SET @id = SCOPE_IDENTITY()';

          DECLARE @params NVARCHAR(MAX);
          SET @params = '@group_name CHAR(100),'
          + '@arrival DATETIME,'
          + '@departure DATETIME,'
          + '@contact_id CHAR(82),'
          + '@id INT OUTPUT';

          DECLARE @id INT;

          EXEC sp_executeSql @stmt = @sql_cmd
          , @params = @params
          , @group_name = @group_name
          , @arrival = @arrival
          , @departure = @departure
          , @contact_id = @contact_id
          , @id = @id OUTPUT;

          -- @id is now available to use
          END


          You can find more information about outputting a variable in the documentation for sp_executeSql.






          share|improve this answer

























            Your Answer








            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "182"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f233579%2finsert-to-a-table-from-a-database-to-other-same-sql-server-using-dynamic-sql%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            3














            Unless I am mistaken, your problem is not as complicated as you think. From what I understand, you want to take some data from your current database, store it in variables and then insert that into another database, returning the id that was inserted. If so, this will do what you need:



            CREATE PROCEDURE dbo.pr_consolidation_copy_group (
            @group_id numeric(10,0),
            @database_to varchar(100)
            )
            AS
            SET NOCOUNT ON;

            DECLARE @group_name char(100)
            ,@arrival datetime
            ,@departure datetime
            ,@contact_id char(82);

            SELECT @group_name = group_name ,
            @arrival = arrival,
            @departure = departure,
            @contact_id = contact_id
            FROM grp
            WHERE group_id = @group_id;

            DECLARE @sql_cmd NVARCHAR(MAX);
            SET @sql_cmd = 'USE ' + QUOTENAME(@database_to) + ';'
            + 'INSERT grp(group_name, arrival, departure, contact_id)'
            + 'SELECT @group_name, @arrival, @departure, @contact_id;'
            + 'SET @id = SCOPE_IDENTITY()';

            DECLARE @params NVARCHAR(MAX);
            SET @params = '@group_name CHAR(100),'
            + '@arrival DATETIME,'
            + '@departure DATETIME,'
            + '@contact_id CHAR(82),'
            + '@id INT OUTPUT';

            DECLARE @id INT;

            EXEC sp_executeSql @stmt = @sql_cmd
            , @params = @params
            , @group_name = @group_name
            , @arrival = @arrival
            , @departure = @departure
            , @contact_id = @contact_id
            , @id = @id OUTPUT;

            -- @id is now available to use
            END


            You can find more information about outputting a variable in the documentation for sp_executeSql.






            share|improve this answer





























              3














              Unless I am mistaken, your problem is not as complicated as you think. From what I understand, you want to take some data from your current database, store it in variables and then insert that into another database, returning the id that was inserted. If so, this will do what you need:



              CREATE PROCEDURE dbo.pr_consolidation_copy_group (
              @group_id numeric(10,0),
              @database_to varchar(100)
              )
              AS
              SET NOCOUNT ON;

              DECLARE @group_name char(100)
              ,@arrival datetime
              ,@departure datetime
              ,@contact_id char(82);

              SELECT @group_name = group_name ,
              @arrival = arrival,
              @departure = departure,
              @contact_id = contact_id
              FROM grp
              WHERE group_id = @group_id;

              DECLARE @sql_cmd NVARCHAR(MAX);
              SET @sql_cmd = 'USE ' + QUOTENAME(@database_to) + ';'
              + 'INSERT grp(group_name, arrival, departure, contact_id)'
              + 'SELECT @group_name, @arrival, @departure, @contact_id;'
              + 'SET @id = SCOPE_IDENTITY()';

              DECLARE @params NVARCHAR(MAX);
              SET @params = '@group_name CHAR(100),'
              + '@arrival DATETIME,'
              + '@departure DATETIME,'
              + '@contact_id CHAR(82),'
              + '@id INT OUTPUT';

              DECLARE @id INT;

              EXEC sp_executeSql @stmt = @sql_cmd
              , @params = @params
              , @group_name = @group_name
              , @arrival = @arrival
              , @departure = @departure
              , @contact_id = @contact_id
              , @id = @id OUTPUT;

              -- @id is now available to use
              END


              You can find more information about outputting a variable in the documentation for sp_executeSql.






              share|improve this answer



























                3












                3








                3







                Unless I am mistaken, your problem is not as complicated as you think. From what I understand, you want to take some data from your current database, store it in variables and then insert that into another database, returning the id that was inserted. If so, this will do what you need:



                CREATE PROCEDURE dbo.pr_consolidation_copy_group (
                @group_id numeric(10,0),
                @database_to varchar(100)
                )
                AS
                SET NOCOUNT ON;

                DECLARE @group_name char(100)
                ,@arrival datetime
                ,@departure datetime
                ,@contact_id char(82);

                SELECT @group_name = group_name ,
                @arrival = arrival,
                @departure = departure,
                @contact_id = contact_id
                FROM grp
                WHERE group_id = @group_id;

                DECLARE @sql_cmd NVARCHAR(MAX);
                SET @sql_cmd = 'USE ' + QUOTENAME(@database_to) + ';'
                + 'INSERT grp(group_name, arrival, departure, contact_id)'
                + 'SELECT @group_name, @arrival, @departure, @contact_id;'
                + 'SET @id = SCOPE_IDENTITY()';

                DECLARE @params NVARCHAR(MAX);
                SET @params = '@group_name CHAR(100),'
                + '@arrival DATETIME,'
                + '@departure DATETIME,'
                + '@contact_id CHAR(82),'
                + '@id INT OUTPUT';

                DECLARE @id INT;

                EXEC sp_executeSql @stmt = @sql_cmd
                , @params = @params
                , @group_name = @group_name
                , @arrival = @arrival
                , @departure = @departure
                , @contact_id = @contact_id
                , @id = @id OUTPUT;

                -- @id is now available to use
                END


                You can find more information about outputting a variable in the documentation for sp_executeSql.






                share|improve this answer















                Unless I am mistaken, your problem is not as complicated as you think. From what I understand, you want to take some data from your current database, store it in variables and then insert that into another database, returning the id that was inserted. If so, this will do what you need:



                CREATE PROCEDURE dbo.pr_consolidation_copy_group (
                @group_id numeric(10,0),
                @database_to varchar(100)
                )
                AS
                SET NOCOUNT ON;

                DECLARE @group_name char(100)
                ,@arrival datetime
                ,@departure datetime
                ,@contact_id char(82);

                SELECT @group_name = group_name ,
                @arrival = arrival,
                @departure = departure,
                @contact_id = contact_id
                FROM grp
                WHERE group_id = @group_id;

                DECLARE @sql_cmd NVARCHAR(MAX);
                SET @sql_cmd = 'USE ' + QUOTENAME(@database_to) + ';'
                + 'INSERT grp(group_name, arrival, departure, contact_id)'
                + 'SELECT @group_name, @arrival, @departure, @contact_id;'
                + 'SET @id = SCOPE_IDENTITY()';

                DECLARE @params NVARCHAR(MAX);
                SET @params = '@group_name CHAR(100),'
                + '@arrival DATETIME,'
                + '@departure DATETIME,'
                + '@contact_id CHAR(82),'
                + '@id INT OUTPUT';

                DECLARE @id INT;

                EXEC sp_executeSql @stmt = @sql_cmd
                , @params = @params
                , @group_name = @group_name
                , @arrival = @arrival
                , @departure = @departure
                , @contact_id = @contact_id
                , @id = @id OUTPUT;

                -- @id is now available to use
                END


                You can find more information about outputting a variable in the documentation for sp_executeSql.







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited 1 hour ago

























                answered 2 hours ago









                Mr.BrownstoneMr.Brownstone

                9,75232342




                9,75232342



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Database Administrators Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f233579%2finsert-to-a-table-from-a-database-to-other-same-sql-server-using-dynamic-sql%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Era Viking Índice Início da Era Viquingue | Cotidiano | Sociedade | Língua | Religião | A arte | As primeiras cidades | As viagens dos viquingues | Viquingues do Oeste e Leste | Fim da Era Viquingue | Fontes históricas | Referências Bibliografia | Ligações externas | Menu de navegação«Sverige då!»«Handel I vikingetid»«O que é Nórdico Antigo»Mito, magia e religião na volsunga saga Um olhar sobre a trajetória mítica do herói sigurd«Bonden var den verklige vikingen»«Vikingatiden»«Vikingatiden»«Vinland»«Guerreiras de Óðinn: As Valkyrjor na Mitologia Viking»1519-9053«Esculpindo símbolos e seres: A arte viking em pedras rúnicas»1679-9313Historia - Tema: VikingarnaAventura e Magia no Mundo das Sagas IslandesasEra Vikinge

                    What's the metal clinking sound at the end of credits in Avengers: Endgame?What makes Thanos so strong in Avengers: Endgame?Who is the character that appears at the end of Endgame?What happens to Mjolnir (Thor's hammer) at the end of Endgame?The People's Ages in Avengers: EndgameWhat did Nebula do in Avengers: Endgame?Messing with time in the Avengers: Endgame climaxAvengers: Endgame timelineWhat are the time-travel rules in Avengers Endgame?Why use this song in Avengers: Endgame Opening Logo Sequence?Peggy's age in Avengers Endgame

                    Mortes em março de 2019 Referências Menu de navegação«Zhores Alferov, Nobel de Física bielorrusso, morre aos 88 anos - Ciência»«Fallece Rafael Torija, o bispo emérito de Ciudad Real»«Peter Hurford dies at 88»«Keith Flint, vocalista do The Prodigy, morre aos 49 anos»«Luke Perry, ator de 'Barrados no baile' e 'Riverdale', morre aos 52 anos»«Former Rangers and Scotland captain Eric Caldow dies, aged 84»«Morreu, aos 61 anos, a antiga lenda do wrestling King Kong Bundy»«Fallece el actor y director teatral Abraham Stavans»«In Memoriam Guillaume Faye»«Sidney Sheinberg, a Force Behind Universal and Spielberg, Is Dead at 84»«Carmine Persico, Colombo Crime Family Boss, Is Dead at 85»«Dirigent Michael Gielen gestorben»«Ciclista tricampeã mundial e prata na Rio 2016 é encontrada morta em casa aos 23 anos»«Pagan Community Notes: Raven Grimassi dies, Indianapolis pop-up event cancelled, Circle Sanctuary announces new podcast, and more!»«Hal Blaine, Wrecking Crew Drummer, Dies at 90»«Morre Coutinho, que editou dupla lendária com Pelé no Santos»«Cantor Demétrius, ídolo da Jovem Guarda, morre em SP»«Ex-presidente do Vasco, Eurico Miranda morre no Rio de Janeiro»«Bronze no Mundial de basquete de 1971, Laís Elena morre aos 76 anos»«Diretor de Corridas da F1, Charlie Whiting morre aos 66 anos às vésperas do GP da Austrália»«Morreu o cardeal Danneels, da Bélgica»«Morreu o cartoonista Augusto Cid»«Morreu a atriz Maria Isabel de Lizandra, de "Vale Tudo" e novelas da Tupi»«WS Merwin, prize-winning poet of nature, dies at 91»«Atriz Márcia Real morre em São Paulo aos 88 anos»«Mauritanie: décès de l'ancien président Mohamed Mahmoud ould Louly»«Morreu Dick Dale, o rei da surf guitar e de "Pulp Fiction"»«Falleció Víctor Genes»«João Carlos Marinho, autor de 'O Gênio do Crime', morre em SP»«Legendary Horror Director and SFX Artist John Carl Buechler Dies at 66»«Morre em Salvador a religiosa Makota Valdina»«مرگ بازیکن‌ سابق نساجی بر اثر سقوط سنگ در مازندران»«Domingos Oliveira morre no Rio»«Morre Airton Ravagniani, ex-São Paulo, Fla, Vasco, Grêmio e Sport - Notícias»«Morre o escritor Flavio Moreira da Costa»«Larry Cohen, Writer-Director of 'It's Alive' and 'Hell Up in Harlem,' Dies at 77»«Scott Walker, experimental singer-songwriter, dead at 76»«Joseph Pilato, Day of the Dead Star and Horror Favorite, Dies at 70»«Sheffield United set to pay tribute to legendary goalkeeper Ted Burgin who has died at 91»«Morre Rafael Henzel, sobrevivente de acidente aéreo da Chapecoense»«Morre Valery Bykovsky, um dos primeiros cosmonautas da União Soviética»«Agnès Varda, cineasta da Nouvelle Vague, morre aos 90 anos»«Agnès Varda, cineasta francesa, morre aos 90 anos»«Tania Mallet, James Bond Actress and Helen Mirren's Cousin, Dies at 77»e