|
database
newsgroups
|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
Problem using EXEC() to run DBCC DBREINDEXI am trying to run DBCC DBREINDEX using EXEC(), code is below.
Based upon the error message at the bottom, the @currenttable variable receives the value 1 but when @currenttable is referenece in the DBCC statement, the value isn't there. Can anyone tell me what I'm doing wrong? declare @sqltest varchar(40), @currenttable int set @currenttable = (select table_id from Table_Space where table_id = 1) set @sqltest = 'DBCC DBREINDEX(''@currenttable'','''',75)' print @currenttable print @sqltest EXEC(@sqltest) Below is the message I get: 1 DBCC DBREINDEX('@currenttable','',75) Server: Msg 2501, Level 16, State 1, Line 1 Could not find a table or object named '@currenttable'. Check sysobjects. Quote problems around ''@currenttable''.
Try: 'DBCC DBREINDEX(' + @currenttable + ','''',75)' -- Show quoteArnie Rowland, YACE* "To be successful, your heart must accompany your knowledge." *Yet Another Certification Exam "nosurfdj" <nosur***@discussions.microsoft.com> wrote in message news:2406FBD3-FD2A-4F69-8A8E-F446DC1473BF@microsoft.com... >I am trying to run DBCC DBREINDEX using EXEC(), code is below. > Based upon the error message at the bottom, the @currenttable variable > receives the value 1 but when @currenttable is referenece in the DBCC > statement, the value isn't there. Can anyone tell me what I'm doing wrong? > > declare @sqltest varchar(40), @currenttable int > set @currenttable = (select table_id from Table_Space where table_id = 1) > set @sqltest = 'DBCC DBREINDEX(''@currenttable'','''',75)' > print @currenttable > print @sqltest > EXEC(@sqltest) > > Below is the message I get: > 1 > DBCC DBREINDEX('@currenttable','',75) > Server: Msg 2501, Level 16, State 1, Line 1 > Could not find a table or object named '@currenttable'. Check sysobjects. > nosurfdj,
DBCC DBREINDEX expects a table name and there is not table named '@currenttable'. declare @sqltest varchar(40), @currenttable int declare @tn sysname set @tn = (select table_name from Table_Space where table_id = 1) set @sqltest = 'DBCC DBREINDEX(''' + @tn + ''','''',75)' print @currenttable print @sqltest EXEC(@sqltest) go AMB Show quote "nosurfdj" wrote: > I am trying to run DBCC DBREINDEX using EXEC(), code is below. > Based upon the error message at the bottom, the @currenttable variable > receives the value 1 but when @currenttable is referenece in the DBCC > statement, the value isn't there. Can anyone tell me what I'm doing wrong? > > declare @sqltest varchar(40), @currenttable int > set @currenttable = (select table_id from Table_Space where table_id = 1) > set @sqltest = 'DBCC DBREINDEX(''@currenttable'','''',75)' > print @currenttable > print @sqltest > EXEC(@sqltest) > > Below is the message I get: > 1 > DBCC DBREINDEX('@currenttable','',75) > Server: Msg 2501, Level 16, State 1, Line 1 > Could not find a table or object named '@currenttable'. Check sysobjects. > I knew it was going to be something simple.
Thanks for your help-that did it. Show quote "Alejandro Mesa" wrote: > nosurfdj, > > DBCC DBREINDEX expects a table name and there is not table named > '@currenttable'. > > declare @sqltest varchar(40), @currenttable int > declare @tn sysname > > set @tn = (select table_name from Table_Space where table_id = 1) > set @sqltest = 'DBCC DBREINDEX(''' + @tn + ''','''',75)' > > print @currenttable > print @sqltest > > EXEC(@sqltest) > go > > > AMB > > "nosurfdj" wrote: > > > I am trying to run DBCC DBREINDEX using EXEC(), code is below. > > Based upon the error message at the bottom, the @currenttable variable > > receives the value 1 but when @currenttable is referenece in the DBCC > > statement, the value isn't there. Can anyone tell me what I'm doing wrong? > > > > declare @sqltest varchar(40), @currenttable int > > set @currenttable = (select table_id from Table_Space where table_id = 1) > > set @sqltest = 'DBCC DBREINDEX(''@currenttable'','''',75)' > > print @currenttable > > print @sqltest > > EXEC(@sqltest) > > > > Below is the message I get: > > 1 > > DBCC DBREINDEX('@currenttable','',75) > > Server: Msg 2501, Level 16, State 1, Line 1 > > Could not find a table or object named '@currenttable'. Check sysobjects. > > |
|||||||||||||||||||||||