Transfer SQL Server User Defined Functions in SSIS

In this article, we will show you how to transfer User Defined Functions from one Database to another Database using the Transfer SQL Server Objects task.

Transfer User Defined Functions Using Transfer SQL Server Objects Task in SSIS

In this SSIS example, we are going to transfer the User Defined Functions (Both Table-Valued Functions and Scalar Valued Functions) from [AdventureWorks2014] to [Duplicate AdventureWorks2014] using the Transfer SQL Server Objects task.

If you observe the below screenshot, there is one Database called [Duplicate AdventureWorks2014]. We already Transferred the tables from [AdventureWorks2014] using the Transfer Objects task. Please refer to the Transfer Tables with Data article to understand how to Transfer SQL server tables. If you want to move the Stored Procedures, please refer to the Transfer Stored Procedures article.

Before we start creating the SSIS Transfer SQL Server User Defined Functions package, Let us see the Functions in [AdventureWorks2014]

Transfer SQL Server User Defined Functions in SSIS 1

The above screenshot shows that the [AdventureWorks2014] Database holds one Table-Valued Function and 10 Scalar Valued Functions. Our job is to transfer one Table-Valued Function and 9 Scalar Valued Functions (except ufnLeadingZeros Functions) from [AdventureWorks2014] to [Duplicate AdventureWorks2014] using the Transfer SQL Server Objects task. Now, let us see the Destination Database.

Transfer SQL Server User Defined Functions in SSIS 2

The above screenshot shows that the [Duplicate AdventureWorks2014] Database holds one Scalar Valued Function.

STEP 1: Open BIDS and Drag and drop the SSIS Transfer SQL Server Objects Task from the toolbox to control flow.

Transfer SQL Server User Defined Functions in SSIS 3

Double-click on the Transfer Objects Task, which will open the Editor to configure it.

General Tab: In this tab, you can write your own Name and description as per the project requirements.

Transfer SQL Server User Defined Functions in SSIS 4

Here, we haven’t changed any. Click on the Objects Tab

STEP 2: Select the SourceConnection property and click on it to create a New connection. If you have already created it, select it.

Transfer SQL Server User Defined Functions in SSIS 5

Once you click on <New connection…>, an SMO Connection Manager Editor window will be opened to configure the connection.

STEP 3: For this example, we are selecting our localhost instance and using Windows Authentication. If you work for an organization, select Server Authentication and provide the credentials.

Transfer SQL Server User Defined Functions in SSIS 6

Click on the Test Connection button to check whether the connection is throwing errors or not.

STEP 4: Click on the SourceDatabase option and select the database you want to use. For now, we are selecting [Adventureworks2014].

SSIS Transfer SQL Server Objects Task Source DataBase 1

STEP 5: Select the DestinationConnection property and click on it to create a New connection. If you have already created one, select the same. We already mentioned the localhost instance in SourceConnection, and here, we also use the same instance. If you want to create a new one, click on will and open the SMO Connection Manager Editor window to configure the connection.

SSIS Transfer SQL Server Objects Task Destination Connection 1

STEP 6: Click on the DestinationDatabase option and select the database you want to use. For now, we are choosing [Duplicate AdventureWorks2014].

SSIS Transfer SQL Server Objects Task Destination Database 1

STEP 7: If you require to copy all the objects (views, function, stored procedures, tables) from the source database, set the CopyAllObjects option to True. In this example, We are going to send User Defined Functions only. So we leave it to default False.

SSIS Transfer SQL Server Objects Task Copy All Objects 1

If we set the CopyAllObjects option to False, the next property ObjectsToCopy will be enabled.

STEP 8: Click on the ObjectsToCopy property to configure it. In this SSIS example, our requirement is transferring the User Defined Functions. So we must understand options such as Copy All User Defined Functions and User Defined Functions List. If you must copy all the User Defined Functions from the source database, set the Copy All UserDefined Functions option to True.

SSIS Transfer SQL Server Objects Task Copying Functions 3

STEP 9: Click on the UserDefinedFunctionsList option and click on the collections. Once you click on the (…) button beside Collections, it will open the Select User Defined Functions window to select the available User Defined Functions from the source connection.

SSIS Transfer SQL Server Objects Task Copying Functions 4

For this example, we are selecting all of them except ufnLeadingZeros Functions. But you can try different options.

STEP 10: Click ok to close the Select User Defined Functions window and then click ok to finish configuring the Transfer SQL Server Objects Task.

Let us run the package to see whether we successfully transferred the User Defined Functions from source to destination.

SSIS Transfer SQL Server Objects Task Copy Tables

Let’s open the Management Studio and check for the User Defined Functions.

SSIS Transfer SQL Server Objects Task Copying Functions 5

From the above screenshot, you can observe that we successfully transferred the SQL Server User Defined Functions in SSIS. They include one Table-Valued Function and 9 Scalar Valued Functions.