Alterar coluna da chave primária no SQL Server
ATUALIZA
Aqui estão as restrições como resultado da consulta
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'history'
CONSTRAINT_NAME COLUMN_NAME ORDINAL_POSITION
PK_history userKey 1
PK_history name 2
Aqui está o resultado da consulta
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME = 'history'
CONSTRAINT_NAME CONSTRAINT_TYPE IS_DEFERRABLE INITIALLY_DEFERRED
PK_history PRIMARY KEY NO NO
END UPDATE
Meu host fornece uma interface para o meu banco de dados do SQL Server via ASP.NET Enterprise Manage
Tenho 3 colunas no meuhistory
mesa
userId
(chave, int, NULL não permitido)name
(chave, string, NULL não permitido)id
(não chave, int, NULL permitido)Eu quero tornar a coluna id a única chav
Para fazer isso, acredito que preciso:
Verifique se não há NULLs nessa coluna para nenhuma linha Defina a coluna para não permitir NULLs Adicione a coluna como chave primáriaRemova as outras 2 colunas como chavesNo entanto, quando eu uso a interface do usuário fornecida, ela nunca funciona. Às vezes, parece que ele tenta fazer algo, mas nunca muda quando eu atualizo a exibição das colunas. Ocasionalmente, cria uma tabela temporária que parece ter tentado executar algumas das operações, mas que nunca é copiada / substitui a tabela original que estou tentando altera
Quando tento usar uma consulta, as alterações também não aparecem. Aqui estão as consultas que eu acho que preciso:
SELECT * from history WHERE id is NULL <---- This shows 0 results
ALTER TABLE history
ALTER COLUMN id int NOT NULL
ALTER TABLE history ADD PRIMARY KEY (id)
ALTER TABLE history
DROP CONSTRAINT userId
DROP CONSTRAINT name
GO
Eu apenas tentei proibir NULLs e adicionar a chave primária para a coluna id. Não parece funcionar. Alguém pode me apontar na direção certa? Obrigado