Solved

Cannot find the object "@dbName"

Posted on 2009-05-15
5
609 Views
Last Modified: 2012-05-07
Can anyone tell me what I can do to make this work?  The stored procedure is altered successfully, but when I try to run it with the command to execute it I get the following error:

EXEC sbs_ClearAllData 'Account'

Msg 4902, Level 16, State 1, Procedure sbs_ClearAllData, Line 16
Cannot find the object "dbo.@dbName" because it does not exist or you do not have permissions.
ALTER PROCEDURE sbs_ClearAllData

	@dbName varchar(50)  <-- This is line 16, fyi
 

AS

BEGIN
 

	SET NOCOUNT ON;	
 

	ALTER TABLE [dbo].[@dbName] NOCHECK CONSTRAINT ALL;
 

	IF OBJECTPROPERTY(object_id('@dbName'), 'TableHasForeignRef') = 1  

		DELETE FROM [dbo].[@dbName]  

	else   

		TRUNCATE TABLE [dbo].[@dbName]
 

	ALTER TABLE [dbo].[@dbName] CHECK CONSTRAINT ALL
 

	IF OBJECTPROPERTY(object_id('@dbName'), 'TableHasIdentity') = 1   

	DBCC CHECKIDENT ('@dbName', RESEED, 0)
 

	-- Populate TransactionCategory

	IF (SELECT COUNT(*) FROM TransactionCategory) = 0

	BEGIN

		INSERT INTO TransactionCategory

			(Id, Code, Description, IsCredit)

		VALUES

			(NEWID(), 'D', 'Debit', 0)

		INSERT INTO TransactionCategory

			(Id, Code, Description, IsCredit)

		VALUES

			(NEWID(), 'C', 'Credit', 1)

	END
 

END

Open in new window

0
Comment
Question by:bakerOSU333
5 Comments
 
LVL 142

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 500 total points
ID: 24399920
>ALTER TABLE [dbo].[@dbName] NOCHECK CONSTRAINT ALL;
you cannot run that without dynamic sql.


exec ('ALTER TABLE [dbo].[' + @dbName + '] NOCHECK CONSTRAINT ALL')

Open in new window

0
 
LVL 75

Expert Comment

by:Aneesh Retnakaran
ID: 24399927
DBCC CHECKIDENT '@dbName, RESEED, 0)   -- no quotes
0
 
LVL 31

Expert Comment

by:James Murrell
ID: 24399946
Personally i would check you have permission for that server, not just read access
0
 

Author Comment

by:bakerOSU333
ID: 24400016
angellll,

how would I fix this section of the code now?  it's closer to working, but I need to make the dbName become a column name for the id property and here is the error I get with the code snip after that:

Msg 207, Level 16, State 1, Line 1
Invalid column name 'Account'.
Msg 207, Level 16, State 1, Line 1
Invalid column name 'TableHasForeignRef'.

EXEC ('IF OBJECTPROPERTY(object_id("' + @dbName + '"), "TableHasForeignRef") = 1  
            DELETE FROM [dbo].['+ @dbName + ']  
      else  
            TRUNCATE TABLE [dbo].[' + @dbName + ']')
0
 
LVL 142

Expert Comment

by:Guy Hengel [angelIII / a3]
ID: 24400196
please try this:
EXEC ('IF OBJECTPROPERTY(object_id(''' + @dbName + '''), ''TableHasForeignRef'') = 1  

            DELETE FROM [dbo].['+ @dbName + ']  

      else  

            TRUNCATE TABLE [dbo].[' + @dbName + ']')

Open in new window

0

Featured Post

Highfive + Dolby Voice = No More Audio Complaints!

Poor audio quality is one of the top reasons people don’t use video conferencing. Get the crispest, clearest audio powered by Dolby Voice in every meeting. Highfive and Dolby Voice deliver the best video conferencing and audio experience for every meeting and every room.

Join & Write a Comment

Introduction SQL Server Integration Services can read XML files, that’s known by every BI developer.  (If you didn’t, don’t worry, I’m aiming this article at newcomers as well.) But how far can you go?  When does the XML Source component become …
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
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.
Via a live example, show how to setup several different housekeeping processes for a SQL Server.

706 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

19 Experts available now in Live!

Get 1:1 Help Now