Copying SQL Server database tables

I am executing a stored procedure, 'test', in a database called db1. Within this stored procedure, I want to check if db2 database exists. If it does not exist, I want to create the db2 and then copy tables from db1 into db2.

Code: --in db1 context IF EXISTS (SELECT name FROM sysobjects WHERE name = 'test' AND type = 'P') DROP PROCEDURE dbo.test GO

CREATE PROCEDURE dbo.test AS --to create db if not existing IF NOT EXISTS (select name from [master].dbo.sysdatabases where name = 'db2') CREATE DATABASE db2 /* if tabl1 exists in db1 then it is copied into db2 and dropped frm db1 */ IF EXISTS (SELECT name FROM sysobjects WHERE name = 'tabl1' and xtype='U') BEGIN SELECT * INTO [db2].dbo.tabl1 FROM tabl1 DROP TABLE tabl1 print 'dropped table' END

When I try to execute this, I get the following error msg:

Server: Msg 2702, Level 16, State 2, Procedure test, Line 10 Database 'db2' does not exist.

How do I get this working?

    Requires Free Membership to View

You'll need to restructure this so one procedure creates the database if necessary and the next procedure called does the real work.

View questions and answers from all of our SQL Server experts here.

This was first published in March 2006

Join the conversationComment

Share
Comments

    Results

    Contribute to the conversation

    All fields are required. Comments will appear at the bottom of the article.