How do I fix my problem with executing code with OPENROWSET?












0















I want to open an Excel dataset with openrowset function, but an error keeps on showing up:



begin
declare @pathname NVARCHAR(max)

set @pathname = N'\{DATAPATH}
select @pathname

begin
exec (' drop_table mytable
select *
into mytable
from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
''SELECT * FROM [Sheet1$]'');

select *
from mytable')
end


Which results in:




Msg 102, Level 15, State 1, Line 17

Incorrect syntax near 'end'.











share|improve this question

























  • why is select @pathname in part of your set statement? To answer your question, you have two BEGIN statements and one END. Each BEGIN must have an END. I'm not sure what you are doing with @pathname though. and that drop table statement.

    – scsimon
    Jan 2 at 15:05


















0















I want to open an Excel dataset with openrowset function, but an error keeps on showing up:



begin
declare @pathname NVARCHAR(max)

set @pathname = N'\{DATAPATH}
select @pathname

begin
exec (' drop_table mytable
select *
into mytable
from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
''SELECT * FROM [Sheet1$]'');

select *
from mytable')
end


Which results in:




Msg 102, Level 15, State 1, Line 17

Incorrect syntax near 'end'.











share|improve this question

























  • why is select @pathname in part of your set statement? To answer your question, you have two BEGIN statements and one END. Each BEGIN must have an END. I'm not sure what you are doing with @pathname though. and that drop table statement.

    – scsimon
    Jan 2 at 15:05
















0












0








0








I want to open an Excel dataset with openrowset function, but an error keeps on showing up:



begin
declare @pathname NVARCHAR(max)

set @pathname = N'\{DATAPATH}
select @pathname

begin
exec (' drop_table mytable
select *
into mytable
from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
''SELECT * FROM [Sheet1$]'');

select *
from mytable')
end


Which results in:




Msg 102, Level 15, State 1, Line 17

Incorrect syntax near 'end'.











share|improve this question
















I want to open an Excel dataset with openrowset function, but an error keeps on showing up:



begin
declare @pathname NVARCHAR(max)

set @pathname = N'\{DATAPATH}
select @pathname

begin
exec (' drop_table mytable
select *
into mytable
from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
''SELECT * FROM [Sheet1$]'');

select *
from mytable')
end


Which results in:




Msg 102, Level 15, State 1, Line 17

Incorrect syntax near 'end'.








sql-server tsql openrowset






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jan 2 at 15:13









marc_s

583k13011241270




583k13011241270










asked Jan 2 at 14:58









ja213214215ja213214215

1




1













  • why is select @pathname in part of your set statement? To answer your question, you have two BEGIN statements and one END. Each BEGIN must have an END. I'm not sure what you are doing with @pathname though. and that drop table statement.

    – scsimon
    Jan 2 at 15:05





















  • why is select @pathname in part of your set statement? To answer your question, you have two BEGIN statements and one END. Each BEGIN must have an END. I'm not sure what you are doing with @pathname though. and that drop table statement.

    – scsimon
    Jan 2 at 15:05



















why is select @pathname in part of your set statement? To answer your question, you have two BEGIN statements and one END. Each BEGIN must have an END. I'm not sure what you are doing with @pathname though. and that drop table statement.

– scsimon
Jan 2 at 15:05







why is select @pathname in part of your set statement? To answer your question, you have two BEGIN statements and one END. Each BEGIN must have an END. I'm not sure what you are doing with @pathname though. and that drop table statement.

– scsimon
Jan 2 at 15:05














2 Answers
2






active

oldest

votes


















0














Hello @Jędrzej_Adaszyński, welcome to stackoverflow! :)



you have to close a transaction, you have two and you have closed only one



begin
declare @pathname NVARCHAR(max)

set @pathname = N'\{DATAPATH}
select @pathname

begin
exec (' drop_table mytable
select *
into mytable
from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
''SELECT * FROM [Sheet1$]'');

select *
from mytable')
end

end





share|improve this answer































    0














    You have a couple different syntax issues to address.



    The first is it looks like you forgot a quote at the end of your set statement, which then breaks the quoting of the rest of your script.



    The second, as others have mentioned, is you have two begins, but only one end.



    Try this:



    begin
    declare @pathname NVARCHAR(max)

    set @pathname = N'\{DATAPATH}'
    select @pathname

    begin
    exec (' drop_table mytable
    select *
    into mytable
    from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
    ''SELECT * FROM [Sheet1$]'');

    select *
    from mytable')
    end
    end





    share|improve this answer
























    • thanks, but it drops a bug again Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '.'.

      – ja213214215
      Jan 3 at 8:11













    • What's the actual string built with your variable?

      – GreyOrGray
      Jan 3 at 15:15











    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    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: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    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%2fstackoverflow.com%2fquestions%2f54008532%2fhow-do-i-fix-my-problem-with-executing-code-with-openrowset%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Hello @Jędrzej_Adaszyński, welcome to stackoverflow! :)



    you have to close a transaction, you have two and you have closed only one



    begin
    declare @pathname NVARCHAR(max)

    set @pathname = N'\{DATAPATH}
    select @pathname

    begin
    exec (' drop_table mytable
    select *
    into mytable
    from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
    ''SELECT * FROM [Sheet1$]'');

    select *
    from mytable')
    end

    end





    share|improve this answer




























      0














      Hello @Jędrzej_Adaszyński, welcome to stackoverflow! :)



      you have to close a transaction, you have two and you have closed only one



      begin
      declare @pathname NVARCHAR(max)

      set @pathname = N'\{DATAPATH}
      select @pathname

      begin
      exec (' drop_table mytable
      select *
      into mytable
      from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
      ''SELECT * FROM [Sheet1$]'');

      select *
      from mytable')
      end

      end





      share|improve this answer


























        0












        0








        0







        Hello @Jędrzej_Adaszyński, welcome to stackoverflow! :)



        you have to close a transaction, you have two and you have closed only one



        begin
        declare @pathname NVARCHAR(max)

        set @pathname = N'\{DATAPATH}
        select @pathname

        begin
        exec (' drop_table mytable
        select *
        into mytable
        from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
        ''SELECT * FROM [Sheet1$]'');

        select *
        from mytable')
        end

        end





        share|improve this answer













        Hello @Jędrzej_Adaszyński, welcome to stackoverflow! :)



        you have to close a transaction, you have two and you have closed only one



        begin
        declare @pathname NVARCHAR(max)

        set @pathname = N'\{DATAPATH}
        select @pathname

        begin
        exec (' drop_table mytable
        select *
        into mytable
        from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
        ''SELECT * FROM [Sheet1$]'');

        select *
        from mytable')
        end

        end






        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 2 at 17:42









        EstebanEsteban

        30426




        30426

























            0














            You have a couple different syntax issues to address.



            The first is it looks like you forgot a quote at the end of your set statement, which then breaks the quoting of the rest of your script.



            The second, as others have mentioned, is you have two begins, but only one end.



            Try this:



            begin
            declare @pathname NVARCHAR(max)

            set @pathname = N'\{DATAPATH}'
            select @pathname

            begin
            exec (' drop_table mytable
            select *
            into mytable
            from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
            ''SELECT * FROM [Sheet1$]'');

            select *
            from mytable')
            end
            end





            share|improve this answer
























            • thanks, but it drops a bug again Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '.'.

              – ja213214215
              Jan 3 at 8:11













            • What's the actual string built with your variable?

              – GreyOrGray
              Jan 3 at 15:15
















            0














            You have a couple different syntax issues to address.



            The first is it looks like you forgot a quote at the end of your set statement, which then breaks the quoting of the rest of your script.



            The second, as others have mentioned, is you have two begins, but only one end.



            Try this:



            begin
            declare @pathname NVARCHAR(max)

            set @pathname = N'\{DATAPATH}'
            select @pathname

            begin
            exec (' drop_table mytable
            select *
            into mytable
            from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
            ''SELECT * FROM [Sheet1$]'');

            select *
            from mytable')
            end
            end





            share|improve this answer
























            • thanks, but it drops a bug again Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '.'.

              – ja213214215
              Jan 3 at 8:11













            • What's the actual string built with your variable?

              – GreyOrGray
              Jan 3 at 15:15














            0












            0








            0







            You have a couple different syntax issues to address.



            The first is it looks like you forgot a quote at the end of your set statement, which then breaks the quoting of the rest of your script.



            The second, as others have mentioned, is you have two begins, but only one end.



            Try this:



            begin
            declare @pathname NVARCHAR(max)

            set @pathname = N'\{DATAPATH}'
            select @pathname

            begin
            exec (' drop_table mytable
            select *
            into mytable
            from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
            ''SELECT * FROM [Sheet1$]'');

            select *
            from mytable')
            end
            end





            share|improve this answer













            You have a couple different syntax issues to address.



            The first is it looks like you forgot a quote at the end of your set statement, which then breaks the quoting of the rest of your script.



            The second, as others have mentioned, is you have two begins, but only one end.



            Try this:



            begin
            declare @pathname NVARCHAR(max)

            set @pathname = N'\{DATAPATH}'
            select @pathname

            begin
            exec (' drop_table mytable
            select *
            into mytable
            from OPENROWSET(''Microsoft.ACE.OLEDB.12.0'',''Excel 12.0; IMEX=1; HDR=YES; Database =' + @pathname + ';'',
            ''SELECT * FROM [Sheet1$]'');

            select *
            from mytable')
            end
            end






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Jan 2 at 17:45









            GreyOrGrayGreyOrGray

            950112




            950112













            • thanks, but it drops a bug again Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '.'.

              – ja213214215
              Jan 3 at 8:11













            • What's the actual string built with your variable?

              – GreyOrGray
              Jan 3 at 15:15



















            • thanks, but it drops a bug again Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '.'.

              – ja213214215
              Jan 3 at 8:11













            • What's the actual string built with your variable?

              – GreyOrGray
              Jan 3 at 15:15

















            thanks, but it drops a bug again Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '.'.

            – ja213214215
            Jan 3 at 8:11







            thanks, but it drops a bug again Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '.'.

            – ja213214215
            Jan 3 at 8:11















            What's the actual string built with your variable?

            – GreyOrGray
            Jan 3 at 15:15





            What's the actual string built with your variable?

            – GreyOrGray
            Jan 3 at 15:15


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • 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%2fstackoverflow.com%2fquestions%2f54008532%2fhow-do-i-fix-my-problem-with-executing-code-with-openrowset%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

            MongoDB - Not Authorized To Execute Command

            How to fix TextFormField cause rebuild widget in Flutter

            Npm cannot find a required file even through it is in the searched directory