Desejo modificar uma chave primária existente em uma tabela do SQL Azure.
Atualmente, tem uma coluna e desejo adicionar outra.
Agora, no SQL Server 2008 isso foi moleza, só fiz no SSMS, puf. Feito. É assim que o PK se parece se eu fizer o script do SQL Server:
ALTER TABLE [dbo].[Friend] ADD CONSTRAINT [PK_Friend] PRIMARY KEY CLUSTERED
(
[UserId] ASC,
[Id] ASC
)
No entanto, no SQL Azure, quando tento executar o acima, é claro que falhará:
Table 'Friend' already has a primary key defined on it.
Tudo bem, então eu tento largar a chave:
Tables without a clustered index are not supported in this version of SQL Server. Please create a clustered index and try again.
Ok, então tento criar um índice clusterizado temporário para descartar o PK:
CREATE CLUSTERED INDEX IX_Test ON [Friend] ([UserId],[Id])
O que resulta em:
Cannot create more than one clustered index on table 'Friend'. Drop the existing clustered index 'PK_Friend' before creating another.
Ótimo, um momento catch22.
Como adiciono a coluna UserId ao meu PK existente?