Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Грешка при изпускане на индекс в база данни на SQL Azure:Неправилен синтаксис близо до ключовата дума „ON“ (потребителски контекст =dbo)

Изглежда, че проблемът предшества името на индекса със схемата (въпреки че се кълна, че много примери, които съм чел, правят точно това).

Така че правилният синтаксис на скрипта е:

declare @sql nvarchar(max);
set @sql = N'';
select @sql = @sql + N'DROP INDEX ' + i.name + N' ON ' + OBJECT_SCHEMA_NAME(i.OBJECT_ID) + '.' + o.name + ';
'
FROM sys.indexes AS i INNER JOIN sys.tables AS o ON i.[object_id] = o.[object_id]
where i.name is not null and o.name is not null and i.type_desc like '%COLUMN%'
PRINT @sql;
EXEC sp_executesql @sql;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да пуснете списък с таблици на SQL Server, като игнорирате ограниченията?

  2. Код за валидиране на SQL скриптове

  3. Проблем със сериализация на C# и SQL Server 2008 CLR

  4. Разделете стойностите на колоната на низа

  5. DISTINCT само за една колона