If Table Exists

Posted on 2008-10-27
Last Modified: 2008-10-29
On the first day of every month we create a table of data for the previous month, I then join  them in a union statement as below.

select etc
from out_jan08

union all

select etc
from out_feb08

On the first day of every month I add the next table to the union statement, so on the 1st Novermber I will add out_oct08 to the statement.

I am wandering if there is away where I can add all 12 months to the stement and add an if table exists statement, so the query will still run even if the table does not exist.


union all

if exists
select etc
from out_oct08
where etc

Is this possible?

Question by:halifaxman
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
LVL 143

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 22817495
no, that is not possible.
you have either to ensure all 12 tables exist at all times,
or simply create, assuming you are using a database that supports partitioned tables, those instead of 1 table per month...

Accepted Solution

jamesgu earned 500 total points
ID: 22817719
run this to get your statement,

declare @sql varchar(1000)
set @sql = ''
if exists( select 1 from sysobjects where name = 'out_jan08' and type = 'U')
	select @sql = 'select etc from out_jan08 where ... '
if exists( select 1 from sysobjects where name = 'out_feb08' and type = 'U')
	if ( @sql != '' )
		select @sql = @sql + char(10) + 'union' + char(10)
	select @sql = @sql + 'select etc from out_feb08 where ... '
print @sql

Open in new window

LVL 39

Expert Comment

ID: 22818281
The other way I can think of is....

--assuming data types here...
create table #Out (etc nvarchar(1000))

if object_id('dbo.out_jan08') is not null
 exec ('insert into #out select etc from out_jan08')
if object_id('dbo.out_feb08') is not null
 exec ('insert into #out select etc from out_feb08')

select * from #out

drop table #out

Featured Post

Containers & Docker to Create a Powerful Team

Containers are an incredibly powerful technology that can provide you and/or your engineering team with huge productivity gains. Using containers, you can deploy, back up, replicate, and move apps and their dependencies quickly and easily.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

As they say in love and is true in SQL: you can sum some Data some of the time, but you can't always aggregate all Data all the time! Introduction: By the end of this Article it is my intention to bring the meaning and value of the above quote to…
I'm trying, I really am. But I've seen so many wrong approaches involving date(time) boundaries I despair about my inability to explain it. I've seen quite a few recently that define a non-leap year as 364 days, or 366 days and the list goes on. …
In this video, viewers will be given step by step instructions on adjusting mouse, pointer and cursor visibility in Microsoft Windows 10. The video seeks to educate those who are struggling with the new Windows 10 Graphical User Interface. Change Cu…
This tutorial will teach you the special effect of super speed similar to the fictional character Wally West aka "The Flash" After Shake : All lightning effects with instructions : http://www.mediaf…

696 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