Go Premium for a chance to win a PS4. Enter to Win

x
?
Solved

Cannot find the object "@dbName"

Posted on 2009-05-15
5
Medium Priority
?
625 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 143

Accepted Solution

by:
Guy Hengel [angelIII / a3] earned 2000 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 143

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

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

What if you have to shut down the entire Citrix infrastructure for hardware maintenance, software upgrades or "the unknown"? I developed this plan for "the unknown" and hope that it helps you as well. This article explains how to properly shut down …
It is possible to export the data of a SQL Table in SSMS and generate INSERT statements. It's neatly tucked away in the generate scripts option of a database.
Via a live example combined with referencing Books Online, show some of the information that can be extracted from the Catalog Views in SQL Server.
Via a live example, show how to shrink a transaction log file down to a reasonable size.

972 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