SQL Azure не распознает мой кластеризованный индекс - PullRequest
4 голосов
/ 29 августа 2011

При попытке вставить строку в таблицу SQL Azure появляется следующая ошибка:

Таблицы без кластерного индекса не поддерживаются в этой версии SQL Server.Пожалуйста, создайте кластеризованный индекс и повторите попытку.

Моя проблема в том, что у меня есть кластеризованный индекс в этой таблице.Я использовал SQL Azure MW для создания сценария SQL Azure.

Вот что я использую:

IF  EXISTS (SELECT * FROM sys.objects
    WHERE object_id = OBJECT_ID(N'[dbo].[tblPasswordReset]') AND type in (N'U'))
DROP TABLE [dbo].[tblPasswordReset]
GO
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
IF NOT EXISTS (SELECT * FROM sys.objects
    WHERE object_id = OBJECT_ID(N'[dbo].[tblPasswordReset]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[tblPasswordReset](
    [PasswordResetID] [int] IDENTITY(1,1) NOT NULL,
    [PasswordResetGUID] [uniqueidentifier] NULL,
    [MemberID] [int] NULL,
    [RequestDate] [datetime] NULL,
 CONSTRAINT [PK_tblPasswordReset] PRIMARY KEY CLUSTERED 
(
    [PasswordResetID] ASC
)WITH (STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF)
)
END
GO

Почему SQL Azure не распознает мой кластеризованный ключ?Мой сценарий неверен?

Ответы [ 2 ]

4 голосов
/ 29 августа 2011

Ваш скрипт создает таблицу, только если она еще не существовала.Возможно, есть еще старая версия таблицы без кластерного индекса?Вы можете проверить с помощью:

select * from sys.indexes where object_id = object_id('tblPasswordReset')

Если таблица существует без кластеризованного индекса, вы можете добавить такой как:

alter table tblPasswordReset add constraint
    PK_tblPasswordReset primary key clustered

Насколько я вижу, ваше утверждение соответствует Спецификация создания таблицы Azure .

2 голосов
/ 15 декабря 2012

Будьте осторожны, если вы используете SSIS.Я сам столкнулся с этой же проблемой, но использовал SSIS вместо ручной вставки данных.По умолчанию службы SSIS удаляют и воссоздают таблицу, поэтому, несмотря на то, что я правильно определил ее с помощью кластерного индекса, мой сценарий служб SSIS завершился неудачно.На шаге «Редактирование сопоставлений» в мастере служб SSIS вы можете вручную определить сценарий создания таблицы.Я просто удалил сценарий table gen и мой импорт сработал.

(я бы оставил это как комментарий, но мой пост слишком анемичный)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...