Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
svicky9
Posting Yak Master
232 Posts |
Posted - 2006-02-22 : 07:11:09
|
Hi guysi want to use the following script for building indexes on all the databases on the testing sql server.But it throws up an error as INCORRECT SYNTAX NEAR DATABASENAMEThe script is as followsuse masterdeclare @databasename varchar(255)declare @tablename varchar(255)declare dbcursor cursor forselect [name] from sysdatabasesopen dbcursorfetch next from dbcursor into @databasenamewhile @@fetch_status = 0begin USE @databasename DECLARE TableCursor CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_type = 'base table' OPEN TableCursor FETCH NEXT FROM TableCursor INTO @TableName WHILE @@FETCH_STATUS = 0 BEGIN DBCC DBREINDEX(@TableName,' ',90) FETCH NEXT FROM TableCursor INTO @TableName END CLOSE TableCursor DEALLOCATE TableCursorendclose DatabaseCursorDeallocate DatabaseCursorWhat could be the problem??ThanksVic |
|
mallier
Starting Member
24 Posts |
Posted - 2006-02-22 : 07:28:01
|
'use @database' statement is wrong. u cannot use that way in sql server.i have a sp which do reindex on all db.see code below.use mastergo CREATE PROC Alldb_reindexAllTables_spas declare @sql nvarchar(4000)--- reindexing all tables except 'tempdb','msdb','pubs','master','Northwind' --------- set @sql = '' select @sql = @sql + 'exec ' + name + '..sp_MSforeachtable @command1=''dbcc dbreindex (''''*'''') WITH NO_INFOMSGS '', @replacechar=''*''' + char(13)from master..sysdatabases where name not in ('tempdb','msdb','pubs','master','Northwind','model')--print @sqlexec (@sql) --exec master..Alldb_reindexAllTables_spcheers,http://mallier.blogspot.com |
 |
|
svicky9
Posting Yak Master
232 Posts |
Posted - 2006-02-22 : 07:56:39
|
thanksVic |
 |
|
Kristen
Test
22859 Posts |
|
|
|
|
|
|