Solved

create or update table(s) in multiple databases

Posted on 2013-01-07
6
342 Views
Last Modified: 2013-01-07
Hi,
I've more than 800 databases in my sql server 2008 R2. Often, I need to update or create a table or multiple tables in my databases and excluding the ones i do not want to create or update the table(s) in it. I am trying to use the below code.

EXEC sp_MSforeachdb 'IF ''?'' NOT IN (''tempDB'',''model'',''msdb'',''master'',''ReportServer'',''ReportServerTempDB'',''DB3'')
BEGIN
    
create table dbo.tblPhys
 (
 name VARCHAR(50),
 physical_name VARCHAR(500),
 state BIT,
 size INT
 )
      
END'

Open in new window


But when i run it, sql server only create or update the table(s) in the selected database of the sql server drop down. Image is attached, so in the scenario of this question case, it create the table only in DB3, not in all the databases. Any feedback, comment or suggestion would be deeply appreciated.
SQLWindow.jpg
0
Comment
Question by:s_hausen
  • 3
  • 2
6 Comments
 
LVL 25

Expert Comment

by:TempDBA
ID: 38752385
sp_MSforeachdb should create it on all the databases. Have you checked it correctly because I tried it on 3 user databases removing system databases and it created on all. When you run the script, what is the output in the output window?
0
 

Author Comment

by:s_hausen
ID: 38752437
it does create a table but only in the selected drop down database , so in this case only in DB3. in the script i've excluded it. after running this code i get this error.

Msg 2714, Level 16, State 6, Line 4
There is already an object named 'tblPhys' in the database.

Open in new window


even i delete the table and run the script, it again create's the table in DB3 and give me the same error..
0
 
LVL 25

Expert Comment

by:TempDBA
ID: 38752500
Looks like your database includes space at the end. Try running below script
select (db_name() + 'A')
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 

Author Comment

by:s_hausen
ID: 38752540
i ran it as mentioned, and this time i selected the database clientsInfo. So in this case, script only created the table inside ClientsInfo(even it is excluded in the script)

EXEC sp_MSforeachdb 'IF ''?'' NOT IN (''tempDB'',''model'',''msdb'',''master'',''ReportServer'',''ReportServerTempDB'',''Institute'',''TDATA'',''ClientsInfo'',''paymentnet'')
BEGIN  
create table dbo.tblPhys
 ( name VARCHAR(50),
 physical_name VARCHAR(500),
 state BIT,
 size INT )   
END'
select (db_name() + 'A')

Open in new window


and after creating table in excluded database, it generates an error.

Msg 2714, Level 16, State 6, Line 3
There is already an object named 'tblPhys' in the database.

Open in new window


is there a way, i ignore to select any database from sql server database drop down?? after that the script might work.
0
 
LVL 69

Accepted Solution

by:
ScottPletcher earned 500 total points
ID: 38753056
I'll touch it up fully, but if you want to, all you have to do is add the bolded line to your code:


EXEC sp_MSforeachdb '
IF ''?'' NOT IN (''tempDB'',''model'',''msdb'',''master'',''ReportServer'',''ReportServerTempDB'',''DB3'')
    RETURN

USE [?] --<<-- add this
create table dbo.tblPhys
 (
 name VARCHAR(50),
 physical_name VARCHAR(500),
 state BIT,
 size INT
 )      
'
0
 

Author Comment

by:s_hausen
ID: 38753171
i made little change in the code and it works like a charm now.
thanks for everyone's input. code is as under:

EXEC sp_MSforeachdb 'IF ''?''  NOT IN (''tempDB'',''model'',''msdb'',''master'',''ReportServer'',''ReportServerTempDB'',''Institute'',''ReportServerTempDB'',''TSQLFundamentals2008'')
BEGIN
USE [?] --<<-- add this
create table tblPhys
 (
 name VARCHAR(50),
 physical_name VARCHAR(500),
 state BIT,
 size INT
 )      
END'

Open in new window

0

Featured Post

Why You Should Analyze Threat Actor TTPs

After years of analyzing threat actor behavior, it’s become clear that at any given time there are specific tactics, techniques, and procedures (TTPs) that are particularly prevalent. By analyzing and understanding these TTPs, you can dramatically enhance your security program.

Join & Write a Comment

Let's review the features of new SQL Server 2012 (Denali CTP3). It listed as below: PERCENT_RANK(): PERCENT_RANK() function will returns the percentage value of rank of the values among its group. PERCENT_RANK() function value always in be…
JSON is being used more and more, besides XML, and you surely wanted to parse the data out into SQL instead of doing it in some Javascript. The below function in SQL Server can do the job for you, returning a quick table with the parsed data.
Via a live example, show how to set up a backup for SQL Server using a Maintenance Plan and how to schedule the job into SQL Server Agent.
Using examples as well as descriptions, and references to Books Online, show the documentation available for datatypes, explain the available data types and show how data can be passed into and out of variables.

747 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now