Q

Copying SQL Server database tables

SQL Server expert Greg Low explains how to copy tables from one database into another.

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?

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

Dig deeper on SQL Server Stored Procedures

Pro+

Features

Enjoy the benefits of Pro+ membership, learn more and join.

Have a question for an expert?

Please add a title for your question

Get answers from a TechTarget expert on whatever's puzzling you.

You will be able to add details on the next page.

0 comments

Oldest 

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

SearchBusinessAnalytics

SearchDataCenter

SearchDataManagement

SearchAWS

SearchOracle

SearchContentManagement

SearchWindowsServer

Close