Solved

Capturing multiple SQL messages (rows affected etc) while executing a SQL statement using SSIS

Posted on 2010-11-11
14
1,277 Views
Last Modified: 2012-06-27
When I run a query in SQL, I get a result set and another tab of Messages....I have a large stored procedure that I want to run in SSIS and I want to capture the messages window (not a result set) for review.

For example, if I run the following query:
Update test set testfield = 1 where datefield = '1/1/'2010'
Update test set testfield = 2 where datefield = '2/1/'2010'

I would like to capture the messages screen which might read:
(1551 row(s) affected)
(8773 row(s) affected)

I would like to save those two (in the real case thousands) messaage lines in a file so that I can save the messages for our records....and perhaps review them for error messages, warnings, etc.

Thanks!
0
Comment
Question by:ryanmaves
  • 5
  • 5
  • 2
  • +2
14 Comments
 
LVL 4

Expert Comment

by:Amgad_Consulting_Co
ID: 34118114
Hi,

use "SET NOCOUNT ON;' before your query


regards
0
 
LVL 15

Expert Comment

by:AmmarR
ID: 34119097
use the @@rowcount

http://www.brettb.com/SQL_Help_Rowcount_Rows_Affected.asp
Update test set testfield = 1 where datefield = '1/1/'2010'
SELECT @@rowcount AS 'RowsChanged'

Open in new window

0
 
LVL 16

Expert Comment

by:EvilPostIt
ID: 34119735
From a meta data perspective you will probably have to use the SET FMT_ONLY ON as well as the set nocount on.
0
Visualize your virtual and backup environments

Create well-organized and polished visualizations of your virtual and backup environments when planning VMware vSphere, Microsoft Hyper-V or Veeam deployments. It helps you to gain better visibility and valuable business insights.

 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 34120499
If the author needs to capture the informational messages then they may be better off using:

SET NOCOUNT OFF
0
 

Author Comment

by:ryanmaves
ID: 34122232
I think my question may have been worded poorly.  The SQL script is running inside an "Execute SQL Task" within a SSIS package.  When I run the same SQL script within the MSSQL Server Management Studio, I get a tab labelled "Result Set" and a tab labelled "Messages."  The Messages tab contains thousands of lines of messages that range from "0 rows affected" to "Warning NULL value may affect summary..." to "You do not have permissions or table X does not exist"....whatever the messages are....I want them ALL (not just the row count).  I can't find where to get them (and thus store them) from WITHIN the SSIS package.
0
 
LVL 16

Expert Comment

by:EvilPostIt
ID: 34122932
I don't think you can actually do that. Plus the error messages will stop the ssis package.
0
 

Author Comment

by:ryanmaves
ID: 34122960
No, the won't stop the execution of the query, or the SSIS package if it is set up correctly.
0
 
LVL 16

Expert Comment

by:EvilPostIt
ID: 34122981
When you say setup correctly do you mean to set the accepted errors higher?
0
 

Author Comment

by:ryanmaves
ID: 34123004
Well, that is one way to accept the messages (accepted errors set higher)....but the entire script will finish and I can set the next step to start on completion rather than success.  We're kind of off-topic here.  I just want to catch the messages whether they be errors or not.
0
 
LVL 16

Expert Comment

by:EvilPostIt
ID: 34123099
I suppose you may be able to run this using osql from the command line and output that to a file and import that file but it's not a pretty solution....
0
 

Author Comment

by:ryanmaves
ID: 34123138
Ok...can you give me an example of how to do that?
0
 
LVL 16

Accepted Solution

by:
EvilPostIt earned 500 total points
ID: 34123227
Have a look at this for the osql part then just import the file created.

http://coppockscoolness.blogspot.com/2008/02/osql-query-to-text-file-thanks-to-brain.html
0
 
LVL 75

Expert Comment

by:Anthony Perkins
ID: 34123270
>> I get a tab labelled "Result Set" and a tab labelled "Messages." ...<<
This is a function of the SSMS tool and as such does not exist in SSIS.  If you need that then you will have to build a .NET app to retrieve those messages.

>>No, the won't stop the execution of the query, or the SSIS package if it is set up correctly. <<
That depends.  It is true that Informational messages (such as "x number of rows affected") and Warning messages (such as "Warning: Null value is eliminated by an aggregate or other SET operation") do not cause the task to fail, Error messages (such as "Cannot find the object "%.*ls" because it does not exist or you do not have permissions") will cause the task to fail.
0
 

Author Closing Comment

by:ryanmaves
ID: 35838563
Sorry for the wait.  Points are yours.
0

Featured Post

Backup Solution for AWS

Read about how CloudBerry Backup fully integrates your backups with Amazon S3 and Amazon Glacier to provide military-grade encryption and dramatically cut storage costs on any platform.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
This query failed in sql 2014 5 38
Subquery in the where statement always shows up null in the result 5 40
SSMS Imprt data from Excel 7 19
SQL syntax question 6 35
Introduction: When running hybrid database environments, you often need to query some data from a remote db of any type, while being connected to your MS SQL Server database. Problems start when you try to combine that with some "user input" pass…
Naughty Me. While I was changing the database name from DB1 to DB_PROD1 (yep it's not real database name ^v^), I changed the database name and notified my application fellows that I did it. They turn on the application, and everything is working. A …
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

685 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question