SQLTeam.com | Weblogs | Forums

Using SSIS to create a new empty database

sql2014

#1

Hi,

I am somewhat new to SSIS. I am using SSIS 2012 / SS2014.

I have a need to create an SSIS package that creates a new empty database that it will populate downstream. I want to be able to pass the name of the new database to SSIS as a parameter. I have tried the following static method in an ExecuteSql task and it works:


DECLARE @db nvarchar(15);

SET @db = N'Test4'

DECLARE @myCreate NVARCHAR(50);

SET @myCreate = N'Create Database ' + @db ;

EXECUTE sp_executesql @myCreate ;

This parses and executes properly. Now when I replace the second line with a parameter, it no longer will parse (see below):

SET @db = ?

I have a global variable named 'Database' that is typed as a String and is set to 'Test4'. Back in the ExecuteSql task under parameter mapping, I have the following:

Variable name: User::Database
Direction: Input
Data Type: NVARCHAR
Parameter name: 0 (I also tried 1)
Parameter size: 15

Other properties in the ExecuteSQL task:

Connection type: OLE DB
Result Set: none
BypassPrepare: False

The addition of the parameter in the SQL causes the task not to parse and I have run out of ideas.

Any assistance would be appreciated.

Thanks,

Tom


#2

I don't know about SSIS bit:

you should use QuoetName in case the @db parameter contains a space etc.

SET @myCreate = N'Create Database ' +  QuoteName(@db) ;

#3

Good point....Thank you!

Tom