When I try to rebuild the index in the table:
ALTER INDEX ALL ON [dbo].[Allocations] REBUILD
works fine.
But when I call
EXECUTE sp_msForEachTable 'ALTER INDEX ALL ON ? REBUILD'
I get the same table and it fails:
Msg 1934, Level 16, State 1, Line 2
ALTER INDEX error because the following SET parameters have incorrect settings: "QUOTED_IDENTIFIER". Ensure that the SET parameters are correct for use with indexed views and / or indexes for computed columns and / or filtered indexes and / or query notifications and / or methods such as XML data and / or spatial index operations.
And to confirm that this is the same table:
EXECUTE sp_msForEachTable 'print ''Rebuilding ?''; ALTER INDEX ALL ON ? REBUILD; PRINT '' Done ?'''
which gives the results:
Rebuilding [dbo].[SystemConfiguration] Done [dbo].[SystemConfiguration] Rebuilding [dbo].[UserGroups] Done [dbo].[UserGroups] Rebuilding [dbo].[Groups] Done [dbo].[Groups] Rebuilding [dbo].[UserPermissions] Done [dbo].[UserPermissions] Rebuilding [dbo].[AllocationAdmins] Done [dbo].[AllocationAdmins] Rebuilding [dbo].[Allocations] Msg 1934, Level 16, State 1, Line 2 ALTER INDEX failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.
What am I not doing wrong?
Note
EXECUTE sp_msForEachTable 'DBCC DBREINDEX(''?'')'
works great!
Ian boyd
source share