Solved

Cannot find the object "@dbName"

Posted on 2009-05-15
5
622 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
[X]
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
5 Comments
 
LVL 143

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 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

Complete VMware vSphere® ESX(i) & Hyper-V Backup

Capture your entire system, including the host, with patented disk imaging integrated with VMware VADP / Microsoft VSS and RCT. RTOs is as low as 15 seconds with Acronis Active Restore™. You can enjoy unlimited P2V/V2V migrations from any source (even from a different hypervisor)

Question has a verified solution.

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

Suggested Solutions

The Delta outage: 650 cancelled flights, more than 1200 delayed flights, thousands of frustrated customers, tens of millions of dollars in damages – plus untold reputational damage to one of the world’s most trusted airlines. All due to a catastroph…
A Stored Procedure in Microsoft SQL Server is a powerful feature that it can be used to execute the Data Manipulation Language (DML) or Data Definition Language (DDL). Depending on business requirements, a single Stored Procedure can return differe…
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.
Using examples as well as descriptions, and references to Books Online, show the documentation available for date manipulation functions and by using a select few of these functions, show how date based data can be manipulated with these functions.

739 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