In this blog post, I would like to show a simple example on how to handle or use the stored procedure that has input , output parameter and return status value in SSIS.
Create Stored Procedure in SQL Server
CREATE PROCEDURE usp_TestProcedure
@MyOutput varchar(100) OUTPUT
SET NOCOUNT ON;
SET @MyOutput = ‘SQL Server Rider';
This user procedure has two parameters input and output. I also returns a return status. All these parameters and return values are imaginary and has no purpose.
Execute usp_TestProcedure in Query window
DECLARE @Output AS VARCHAR(100)
EXEC [dbo].[usp_TestProcedure] ‘Blogger’, @Output OUTPUT
@Output is the character variable and also act as an output parameter variable to bring back the value of the @MyOutput parameter in the stored procedure.
To execute the same stored procedure in the SSIS, we are going to use Execute SQL Task. So, We need to create three variables in the package to execute this stored procedure.
Step 0: Create SSIS solution in SS
Step 1: Add 3 package variables with correct data type.
Step 2: Add and Configure the SQL Execute Tast
Configure Database connection, Stored procedure and its parameters.
SQL Statement: exec ? = usp_TestProcedure ?,? OUTPUT
Map variables to Input/output parameters and return value .
Step 3: Executing the package and watch the variable’s value during run-time.
Package execution succeeded by calling the stored procedure.
We need to Map the parameters in sequential order. It means, in this example parameter 0 is return value and 1 is the input and 2 is the output parameter.
Download latest and up-to-date list of SQL Server versions and its support dates. Click here to download (CSV file)
It is always important to know what versions of SQL Server running in our environment to keep the business healthy and to avoid unintended issues such as security risks, system failure, performance issues and etc. Keeping the server up-to-date will give the best solution to business for complex customer problems.
This is the list of the end of mainstream support for SQL Server 2008 and SQL Server 2008 R2
So, go check the system and update or upgrade the old versions.
Thanks for reading.
Cumulative Update (CU) #13 has been released for SQL Server 2008 R2 SP2. It is the final update for this version because the mainstream support ends on July 8, 2014.
Following are the fix for the BI services in CU #13
- FIX: Memory leak occurs during Process Update on a dimension in SSAS 2008 R2
- FIX: Incorrect result and exception occur when you use MDX query to do session cube grouping in SSAS 2008 R2
Full list of CU downloads for SQL Server 2008 R2 SP2
CU#13 KB Article
CU#12 KB Article
CU#11 KB Article
CU#10 KB Article
CU#9 KB Article
CU#8 KB Article
CU#7 KB Article
CU#6 KB Article
CU#5 KB Article
CU#4 KB Article
CU#3 KB Article
CU#2 KB Article
CU#1 KB Article
Microsoft released Cumulative Update 2 for SQL Server 2014 RTM. This blog post contains hot-fix details for BI (SSIS, DQS, SSAS, SSRS), In-Memeory OLTP, SQL Server Performance topics.
- FIX: The execution of SSIS package takes a long time when you cannot enable garbage collector server mode in SSIS 2012 or SSIS 2014
- FIX: Errors when you use export/import data wizard to move data in SQL Server
- FIX: The execution of an SSIS package that is stored in MSDB is slower than it is stored on the file system
- FIX: SSIS 2012 or SSIS 2014 XML validator only outputs “TRUE” or “FALSE” when you perform XML validation
- FIX: Error when you add a custom connection manager in SSIS 2014 Designer
Data Quality Services (DQS)
- FIX: Error when you execute DQS stored procedure [internal_core].[RestoreDQDatabases] in SQL Server
- FIX: Error when you use DQS Cleansing component with large batch in an SSIS 2012 or SSIS 2014 package
- FIX: Totals are wrong after you filter on a pivot table item and remove the filter in SSAS 2012 or SSAS 2014
- FIX: SSAS instance crashes when you perform writeback action by using the role with cell security defined
- FIX: The execution of an MDX query in SSAS 2012 or SSAS 2014 is much slower than it is in SSAS 2008 R2
- FIX: Access violation occurs when running a Process Recalc on a tabular table in SSAS 2012 or SSAS 2014
- FIX: Data models do not load after you run a PowerPivot scheduled data refresh job when you work with SQL Server 2014
- FIX: You cannot create a power view report against a UDM cube in SSAS 2014
- FIX: Poor performance when you use DAX functions on a String or Boolean column in SSAS 2014
- Can now disable checking whether dimension and partition data originate from the same data source when you run a ROLAP query in SQL Server 2014
- FIX: “SQL Server performance counters are disabled” when you move the SQL Server resource in SQL Server 2014
- FIX: Error in checking master database after you bind a memory-optimized database to a resource pool in SQL Server 2014
- FIX: Sys.indexes returns incorrect value for indexes in SQL Server 2014
- FIX: Intense query compilation workload does not scale with growing number of cores on NUMA hardware and results in CPU saturation in SQL Server
- FIX: Assertion failure when you execute a query specifying TOP N and ORDER BY in SQL Server
- FIX: Incorrect results when you run queries that contain UNION operator by using parallel query plan in SQL Server
- FIX: An access violation occurs when you execute update query on a table that has a DML trigger in SQL Server
- FIX: Poor cardinality estimation when the ascending key column is branded as stationary in SQL Server
- FIX: Metadata corruption occurs when you update index statistics with INCREMENTAL=ON in SQL Server 2014
DBF is a database file format and it is one of the oldest and successful data storage in the past and present. This blog post is just to introduce a utility software called MyDBFViewer. This is used to view dbf files and convert it to CSV format with simple button clicks. Please download and use this software and share your feedback in the comment section.
Sample screen of the software:
Step 1: Select a DBF file using Select file button or type the file path in the text box.
Step 2: Click Browse Data button to load the data on the screen.
Step 3: Click Export to CSV button for exporting data to CSV file. To perform this step you have to complete Step 2.
DBF file used in this demo is available here.
Note: Please download and rename the file MyDBFViewer.pdf to MyDBFViewer.exe
This is a hotfix from Microsoft for SQL Server 2012 to prevent the data loss while building cluster index.
Microsoft provided two options to solve this problem
1. Work around – run the online index build in serial mode (DOP = 1).
We may need a limited result set of a huge dataset . Because, we may need to apply some statistical model with different sample data to check the output in various conditions or simply for testing the application or may be for other purpose. In these scenarios, we need to use the sampling commands available in SQL Server. Eventually, It will save some time and resources.
Below given methods can be used to fetch limited number of rows from a result set.
In this blog post we are going to learn TableSample clause.
Table sample clause limits the number of rows returned from a table. We can specify the sampling data in row count or in percentage value. So, it will return only the specified number of rows instead all records.
But, we cannot use this with the following DML and DDL statements.
DML statements- Derived tables, Tables from linked servers, and Tables derived from table-valued functions, Rowset functions and OPENXML.
DDL statements – View and Inline table-valued function.
TABLESAMPLE [SYSTEM] (sample_number [ PERCENT | ROWS ] ) [ REPEATABLE (repeat_seed) ]
SYSTEM is an ANSI SQL implementation and it is the only sampling method available in SQL Server. TABLESAMPLE SYSTEM returns an approximate percentage of rows and generates a random value for each physical 8-KB page in the table. It returns all the rows on approximately based on that calculation.
The REPEATABLE option causes a selected sample to be returned again with the given seed value. It returns the same output as long as the table has no changes affect by DML commands or table maintenance operation (such as index rebuild, backup and etc).
Database used for the example is AdventureWorks2012
1. In this example SQL query we get a sample of x percent in n rows. I am going to execute the following statements twice.
SELECT FirstName, LastName FROM Person.Person TABLESAMPLE (10 PERCENT) ;
Output: No. of Rows after execution 1 and 2 are 1550 and 1755 respectively.
2. In this example SQL query we are going to use option repeatable.
SELECT FirstName, LastName FROM Person.Person TABLESAMPLE (10 PERCENT) REPEATABLE (205) ;
3. In this example we are going to use rows option.
SELECT FirstName, LastName FROM Person.Person TABLESAMPLE (100 ROWS) ;
4. In this method we are going to use NewID() guid generating function to get randomized rows. But, it consumes some time for processing. So, use it with caution.
Select top 5 percent * from Person.Person order by newid()
There are other ways to work with large table using RAND(), newid() and Binary_Checksum() functions. Please read this article for more information.