We help IT Professionals succeed at work.

Sql Server 2005, Primary Key on Temp. table

onebite2
onebite2 asked
on
1,940 Views
Last Modified: 2012-05-05
I get an error "There is already an object named 'PK_#temp' in the database". because i have created a primary key on temp. table in a stored proc and 2 or multiple users run it at the same time i get above error message. If only one user would run the SP then there is no problem.
Challenge is how to fix this.
Question, can't there be Primary key on the temp table. If so can Sql server 2005 manage if i dont use primary key name or how does it work. Let me know. See the below code from the SP.


--this temp table created on the fly in the SP. 2 users run the SP 
--sametime is causing it to fail or should i do check if table(&PK) 
--exists at first place and then create table.. Let me know.
Create table #tempMain
(
SrOfferID Int NOT NULL CONSTRAINT [DF_#tempMain_SrOfferID]  DEFAULT (0), 
SrOfferScheduleID  Int NOT NULL CONSTRAINT [DF_#tempMain_SrOfferScheduleID]  DEFAULT (0), 
FacultyID Int NOT NULL CONSTRAINT [DF_#tempMain_FacultyID]  DEFAULT (0), 
StartDate  Datetime,
EndDate  Datetime,
OfferDays char(10),
ShowDay  char(3000),
ShowMonth char(3000)
CONSTRAINT [PK_#tempMain] PRIMARY KEY CLUSTERED 
(
[SrOfferID] ASC,
[SrOfferScheduleID] ASC,
[FacultyID] ASC
) ON [PRIMARY]
) ON [PRIMARY]

Open in new window

Comment
Watch Question

Author

Commented:
Forgot to tell this.. I already do the checking before creating temp table..
--Drop #temp table if exists
 
IF  EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[PK_#tempMain]') AND type = 'PK')
	Begin
	ALTER TABLE [dbo].[#tempMain] DROP CONSTRAINT [PK_#tempMain]
	End 
 
If exists (select  * from tempdb.dbo.sysobjects o where o.xtype in ('U')  and o.id = object_id(N'tempdb..#tempMain'))
	Begin
	Drop table #tempMain	
	End 
--After this i create the table as in above code snippet

Open in new window

CERTIFIED EXPERT
Awarded 2008
Awarded 2008
Commented:
This one is on us!
(Get your first solution completely free - no credit card required)
UNLOCK SOLUTION

Author

Commented:
That works chapmandew, so that means when i drop a temp table. Primary Key constraint on the temp table will be dropped automatically??? or explain me what's my mistake.
CERTIFIED EXPERT
Awarded 2008
Awarded 2008

Commented:
yep, when you drop a table, the constraints are dropped w/ it.

Gain unlimited access to on-demand training courses with an Experts Exchange subscription.

Get Access
Why Experts Exchange?

Experts Exchange always has the answer, or at the least points me in the correct direction! It is like having another employee that is extremely experienced.

Jim Murphy
Programmer at Smart IT Solutions

When asked, what has been your best career decision?

Deciding to stick with EE.

Mohamed Asif
Technical Department Head

Being involved with EE helped me to grow personally and professionally.

Carl Webster
CTP, Sr Infrastructure Consultant
Empower Your Career
Did You Know?

We've partnered with two important charities to provide clean water and computer science education to those who need it most. READ MORE

Ask ANY Question

Connect with Certified Experts to gain insight and support on specific technology challenges including:

  • Troubleshooting
  • Research
  • Professional Opinions
Unlock the solution to this question.
Join our community and discover your potential

Experts Exchange is the only place where you can interact directly with leading experts in the technology field. Become a member today and access the collective knowledge of thousands of technology experts.

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.