SQL PRINT vs SQL EXECsp_ExecuteSQL, performance and table variablesDoes Detach/Attach or Offline/Online Clear...

Do people actually use the word "kaputt" in conversation?

Nested Dynamic SOQL Query

What will the Frenchman say?

Asserting that Atheism and Theism are both faith based positions

When did hardware antialiasing start being available?

is this saw blade faulty?

Which partition to make active?

Was World War I a war of liberals against authoritarians?

Output visual diagram of picture

How to test the sharpness of a knife?

What is the difference between something being completely legal and being completely decriminalized?

Knife as defense against stray dogs

Is VPN a layer 3 concept?

Emojional cryptic crossword

When should a starting writer get his own webpage?

Print last inputted byte

Hot air balloons as primitive bombers

Animating wave motion in water

PTIJ: Why do we make a Lulav holder?

Would this string work as string?

label a part of commutative diagram

Did Nintendo change its mind about 68000 SNES?

Why is participating in the European Parliamentary elections used as a threat?

What are the consequences of changing the number of hours in a day?



SQL PRINT vs SQL EXEC


sp_ExecuteSQL, performance and table variablesDoes Detach/Attach or Offline/Online Clear the Buffer Cache for a Particular Database?Buffer Size Changing?Safe alternative to exec(sql)SQL Trigger QuestionWhy high compile times for functions with XML on SQL Server 2016?SQL PRINT statement prints nothingAll Queries are slow on Prod than Dev ServerSQL Server Patch Level Is Inaccurate, Causing Upgrade IssuesDBCC ShrinkFile not working













0















When executing the query below if i use PRINT it prints correctly i can copy and paste the printed code and execute it. However is i use EXEC i get the following



error on exec



Is there a way of simplifying what i am doing? Why does SQL PRINT and SQL EXEC deliver these two very different result sets?



DECLARE @TableName as NVARCHAR(250), @SQL as VARCHAR(MAX);

DECLARE @TableCursor as CURSOR;
SET @TableCursor = CURSOR FOR
SELECT sobjects.name
FROM sysobjects sobjects
WHERE sobjects.xtype = 'U'
AND name like 'HISTORY_MasterList_%'
ORDER BY sobjects.name

OPEN @TableCursor;
FETCH NEXT FROM @TableCursor INTO @TableName;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL ='select '''+ @TableName +''', 0
Union All
select All ''Server Count'',count(1) from ['+ @TableName +']
Union All
select All ''Server Cores'',sum(convert(decimal(18,0),cores)) from ['+ @TableName +']
Union All
select ''Production Servers'',count(1) from ['+ @TableName +'] where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
Union All
select ''Production Cores'', sum(convert(decimal(18,0),cores)) from ['+ @TableName +']
where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
Union All
select ''Production Server Count after filtering out passive/failover servers'', count(1) from
(select distinct m.ServerName
from ['+ @TableName +'] m
inner join [SQLEnv].[dbo].[vwManView] v on m.ServerName = v.ServerName
where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
and unit <> 0) aa
Union All
select ''Production Server Cores after filtering out passive/failover servers'', sum(convert(decimal(18,0),cores)) from(
select distinct m.ServerName, m.Cores
from ['+ @TableName +'] m
inner join [SQLEnv].[dbo].[vwManView] v on m.ServerName = v.ServerName
where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
and unit <> 0) aa
Union All
select ''Non-Prod SQL Instances downgraded to Developer Edition'',count(1) from ['+ @TableName +'] where ''InstanceStatus'' like ''Downgrade%''
Union All
select ''Non-Prod SQL Instance Core Count downgraded to Developer Edition'',sum(convert(decimal(18,0),cores)) from ['+ @TableName +'] where ''InstanceStatus'' like ''Downgrade%''
Union All
select ''Non-Prod VMs moved from Prod Environments'', count(1) from ['+ @TableName +'] where ServerStatus like ''VM Moved/right sized from Prod Env to NonProd''
Union All
select ''Non-Prod VMs TO BE moved from Prod Environments'', count(1) from ['+ @TableName +'] where ServerStatus like ''Sent for V2V - non prod split''
'

EXEC @SQL

FETCH NEXT FROM @TableCursor INTO @TableName;
END
CLOSE @TableCursor;
DEALLOCATE @TableCursor;








share



























    0















    When executing the query below if i use PRINT it prints correctly i can copy and paste the printed code and execute it. However is i use EXEC i get the following



    error on exec



    Is there a way of simplifying what i am doing? Why does SQL PRINT and SQL EXEC deliver these two very different result sets?



    DECLARE @TableName as NVARCHAR(250), @SQL as VARCHAR(MAX);

    DECLARE @TableCursor as CURSOR;
    SET @TableCursor = CURSOR FOR
    SELECT sobjects.name
    FROM sysobjects sobjects
    WHERE sobjects.xtype = 'U'
    AND name like 'HISTORY_MasterList_%'
    ORDER BY sobjects.name

    OPEN @TableCursor;
    FETCH NEXT FROM @TableCursor INTO @TableName;
    WHILE @@FETCH_STATUS = 0
    BEGIN
    SET @SQL ='select '''+ @TableName +''', 0
    Union All
    select All ''Server Count'',count(1) from ['+ @TableName +']
    Union All
    select All ''Server Cores'',sum(convert(decimal(18,0),cores)) from ['+ @TableName +']
    Union All
    select ''Production Servers'',count(1) from ['+ @TableName +'] where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
    Union All
    select ''Production Cores'', sum(convert(decimal(18,0),cores)) from ['+ @TableName +']
    where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
    Union All
    select ''Production Server Count after filtering out passive/failover servers'', count(1) from
    (select distinct m.ServerName
    from ['+ @TableName +'] m
    inner join [SQLEnv].[dbo].[vwManView] v on m.ServerName = v.ServerName
    where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
    and unit <> 0) aa
    Union All
    select ''Production Server Cores after filtering out passive/failover servers'', sum(convert(decimal(18,0),cores)) from(
    select distinct m.ServerName, m.Cores
    from ['+ @TableName +'] m
    inner join [SQLEnv].[dbo].[vwManView] v on m.ServerName = v.ServerName
    where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
    and unit <> 0) aa
    Union All
    select ''Non-Prod SQL Instances downgraded to Developer Edition'',count(1) from ['+ @TableName +'] where ''InstanceStatus'' like ''Downgrade%''
    Union All
    select ''Non-Prod SQL Instance Core Count downgraded to Developer Edition'',sum(convert(decimal(18,0),cores)) from ['+ @TableName +'] where ''InstanceStatus'' like ''Downgrade%''
    Union All
    select ''Non-Prod VMs moved from Prod Environments'', count(1) from ['+ @TableName +'] where ServerStatus like ''VM Moved/right sized from Prod Env to NonProd''
    Union All
    select ''Non-Prod VMs TO BE moved from Prod Environments'', count(1) from ['+ @TableName +'] where ServerStatus like ''Sent for V2V - non prod split''
    '

    EXEC @SQL

    FETCH NEXT FROM @TableCursor INTO @TableName;
    END
    CLOSE @TableCursor;
    DEALLOCATE @TableCursor;








    share

























      0












      0








      0








      When executing the query below if i use PRINT it prints correctly i can copy and paste the printed code and execute it. However is i use EXEC i get the following



      error on exec



      Is there a way of simplifying what i am doing? Why does SQL PRINT and SQL EXEC deliver these two very different result sets?



      DECLARE @TableName as NVARCHAR(250), @SQL as VARCHAR(MAX);

      DECLARE @TableCursor as CURSOR;
      SET @TableCursor = CURSOR FOR
      SELECT sobjects.name
      FROM sysobjects sobjects
      WHERE sobjects.xtype = 'U'
      AND name like 'HISTORY_MasterList_%'
      ORDER BY sobjects.name

      OPEN @TableCursor;
      FETCH NEXT FROM @TableCursor INTO @TableName;
      WHILE @@FETCH_STATUS = 0
      BEGIN
      SET @SQL ='select '''+ @TableName +''', 0
      Union All
      select All ''Server Count'',count(1) from ['+ @TableName +']
      Union All
      select All ''Server Cores'',sum(convert(decimal(18,0),cores)) from ['+ @TableName +']
      Union All
      select ''Production Servers'',count(1) from ['+ @TableName +'] where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
      Union All
      select ''Production Cores'', sum(convert(decimal(18,0),cores)) from ['+ @TableName +']
      where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
      Union All
      select ''Production Server Count after filtering out passive/failover servers'', count(1) from
      (select distinct m.ServerName
      from ['+ @TableName +'] m
      inner join [SQLEnv].[dbo].[vwManView] v on m.ServerName = v.ServerName
      where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
      and unit <> 0) aa
      Union All
      select ''Production Server Cores after filtering out passive/failover servers'', sum(convert(decimal(18,0),cores)) from(
      select distinct m.ServerName, m.Cores
      from ['+ @TableName +'] m
      inner join [SQLEnv].[dbo].[vwManView] v on m.ServerName = v.ServerName
      where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
      and unit <> 0) aa
      Union All
      select ''Non-Prod SQL Instances downgraded to Developer Edition'',count(1) from ['+ @TableName +'] where ''InstanceStatus'' like ''Downgrade%''
      Union All
      select ''Non-Prod SQL Instance Core Count downgraded to Developer Edition'',sum(convert(decimal(18,0),cores)) from ['+ @TableName +'] where ''InstanceStatus'' like ''Downgrade%''
      Union All
      select ''Non-Prod VMs moved from Prod Environments'', count(1) from ['+ @TableName +'] where ServerStatus like ''VM Moved/right sized from Prod Env to NonProd''
      Union All
      select ''Non-Prod VMs TO BE moved from Prod Environments'', count(1) from ['+ @TableName +'] where ServerStatus like ''Sent for V2V - non prod split''
      '

      EXEC @SQL

      FETCH NEXT FROM @TableCursor INTO @TableName;
      END
      CLOSE @TableCursor;
      DEALLOCATE @TableCursor;








      share














      When executing the query below if i use PRINT it prints correctly i can copy and paste the printed code and execute it. However is i use EXEC i get the following



      error on exec



      Is there a way of simplifying what i am doing? Why does SQL PRINT and SQL EXEC deliver these two very different result sets?



      DECLARE @TableName as NVARCHAR(250), @SQL as VARCHAR(MAX);

      DECLARE @TableCursor as CURSOR;
      SET @TableCursor = CURSOR FOR
      SELECT sobjects.name
      FROM sysobjects sobjects
      WHERE sobjects.xtype = 'U'
      AND name like 'HISTORY_MasterList_%'
      ORDER BY sobjects.name

      OPEN @TableCursor;
      FETCH NEXT FROM @TableCursor INTO @TableName;
      WHILE @@FETCH_STATUS = 0
      BEGIN
      SET @SQL ='select '''+ @TableName +''', 0
      Union All
      select All ''Server Count'',count(1) from ['+ @TableName +']
      Union All
      select All ''Server Cores'',sum(convert(decimal(18,0),cores)) from ['+ @TableName +']
      Union All
      select ''Production Servers'',count(1) from ['+ @TableName +'] where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
      Union All
      select ''Production Cores'', sum(convert(decimal(18,0),cores)) from ['+ @TableName +']
      where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
      Union All
      select ''Production Server Count after filtering out passive/failover servers'', count(1) from
      (select distinct m.ServerName
      from ['+ @TableName +'] m
      inner join [SQLEnv].[dbo].[vwManView] v on m.ServerName = v.ServerName
      where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
      and unit <> 0) aa
      Union All
      select ''Production Server Cores after filtering out passive/failover servers'', sum(convert(decimal(18,0),cores)) from(
      select distinct m.ServerName, m.Cores
      from ['+ @TableName +'] m
      inner join [SQLEnv].[dbo].[vwManView] v on m.ServerName = v.ServerName
      where Classification in (''Prod'',''Production'',''Prd'',''Unknown'')
      and unit <> 0) aa
      Union All
      select ''Non-Prod SQL Instances downgraded to Developer Edition'',count(1) from ['+ @TableName +'] where ''InstanceStatus'' like ''Downgrade%''
      Union All
      select ''Non-Prod SQL Instance Core Count downgraded to Developer Edition'',sum(convert(decimal(18,0),cores)) from ['+ @TableName +'] where ''InstanceStatus'' like ''Downgrade%''
      Union All
      select ''Non-Prod VMs moved from Prod Environments'', count(1) from ['+ @TableName +'] where ServerStatus like ''VM Moved/right sized from Prod Env to NonProd''
      Union All
      select ''Non-Prod VMs TO BE moved from Prod Environments'', count(1) from ['+ @TableName +'] where ServerStatus like ''Sent for V2V - non prod split''
      '

      EXEC @SQL

      FETCH NEXT FROM @TableCursor INTO @TableName;
      END
      CLOSE @TableCursor;
      DEALLOCATE @TableCursor;






      sql-server sql-server-2012 sql-server-2008 sql-server-2008-r2 t-sql





      share












      share










      share



      share










      asked 5 mins ago









      VorsterVorster

      12410




      12410






















          0






          active

          oldest

          votes











          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%2f232492%2fsql-print-vs-sql-exec%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          0






          active

          oldest

          votes








          0






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          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%2f232492%2fsql-print-vs-sql-exec%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

          ORA-01691 (unable to extend lob segment) even though my tablespace has AUTOEXTEND onORA-01692: unable to...

          Always On Availability groups resolving state after failover - Remote harden of transaction...

          Circunscripción electoral de Guipúzcoa Referencias Menú de navegaciónLas claves del sistema electoral en...