Chave primária de incremento automático no SQL Server Management Studio 2012

Como é que eu {[[0]} a primary key numa tabela de base de dados SQL Server, dei uma vista de olhos pelo fórum mas não consigo ver como.

Olhei para as propriedades mas não consigo ver uma opção, vi uma resposta onde você vai para a propriedade Identity especificação e configurá-la para SIM e definir o Identity increment para 1, mas essa secção está riscada e eu não posso mudar o não para Sim.

Deve haver uma maneira simples de fazer isto, mas não a Encontro.

Author: DineshDB, 2012-06-12

9 answers

Certifique-se de que o tipo de dados da coluna da chave é int e depois defina a identidade manualmente, como mostra a imagem

enter image description here

Ou basta executar este código

-- ID is the name of the  [to be] identity column
ALTER TABLE [yourTable] DROP COLUMN ID 
ALTER TABLE [yourTable] ADD ID INT IDENTITY(1,1)

O código será executado, se ID não for a única coluna no quadro

referência da imagem fifo's

 576
Author: Rab, 2015-08-10 13:33:55
Quando você está criando a tabela, você pode criar um IDENTITY coluna:
CREATE TABLE (
  ID_column INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
  ...
);

A propriedade IDENTITY irá aumentar automaticamente a coluna a partir do número 1. (Note que o tipo de dados da coluna tem que ser um inteiro.) Se quiser adicionar isto a uma coluna existente, use um ALTER TABLE comando.

Editar:
Testei um pouco, e não consigo encontrar uma maneira de mudar as propriedades da identidade através da janela de Propriedades da coluna para várias tabelas. Acho que se quiseres. faça uma coluna uma coluna de identidade, e terá de usar um comando ALTER TABLE.

 139
Author: Josien, 2015-11-01 11:36:50
Tens de expandir a secção de identidade para expor o incremento e a semente.

enter image description here

Editar: eu assumi que você teria um tipo de dados inteiro, não um char(10). O que é razoável eu diria e válido quando postei esta resposta

 81
Author: gbn, 2012-06-12 07:19:07

Expanda a sua base de Dados, expanda a sua tabela, carregue com o botão direito na sua tabela e seleccione o desenho da lista. ITlooks like this

Agora vá propriedades da Coluna abaixo de rolagem para baixo e encontre Identidade Especificação, expandi-lo e você vai encontrar , É a Identidade torná-lo Sim. Agora escolha o incremento de identidade mesmo por baixo dele dê o valor que deseja aumentar nele. enter image description here

 27
Author: FIFO BIZSOL, 2013-04-19 19:43:46
Talvez me esteja a escapar alguma coisa, mas porque é que isto não funciona com o objecto sequencial? Não é isto que procuras?

Exemplo:

CREATE SCHEMA blah.
GO

CREATE SEQUENCE blah.blahsequence
START WITH 1
INCREMENT BY 1
NO CYCLE;

CREATE TABLE blah.de_blah_blah
(numbers bigint PRIMARY KEY NOT NULL
......etc

Ao fazer referência ao quadrado em digamos que um comando INSERT use apenas:

NEXT VALUE FOR blah.blahsequence

Mais informações e opções para sequência

 7
Author: Techie Joe, 2013-09-25 15:30:24

Quando estiver a usar o tipo de dados: int, poderá seleccionar a linha que deseja obter automaticamente e ir para a marca de propriedades da coluna. Aí você pode definir a identidade para "Sim". O valor inicial para autoincrement também pode ser editado lá. Hope I could help;)

 6
Author: M.Schrecker, 2014-08-07 13:28:03

Eu tinha este problema onde eu já tinha criado a tabelae não podia mudá-la sem deixar cair a tabela então o que eu fiz foi: (Não tenho certeza quando eles implementaram isso, mas tinha em SQL 2016)

Carregue com o botão direito na mesa do Explorador de objectos:

Script Table as > DROP And CREATE To > New Query Editor Window

Depois faça a edição do programa dito por Josien; vá para o fundo onde está o CREATE TABLE, Encontre a sua chave primária e adicione IDENTITY(1,1) ao fim antes da vírgula. Executar o guião.

A gota e criar o roteiro também foi útil para mim por causa deste problema. (que o script gerado lida.)

 1
Author: cheriejw, 2018-08-28 07:12:20

Tenha cuidado como se quisesse que os elementos de ID fossem contigius ou não. Como SQLServer ID pode saltar por 1000 .

Example: before restart ID=11 após reiniciar, você insere uma nova linha na tabela, então o id será 1012.

 0
Author: Java Main, 2017-03-11 12:03:08

Se a tabela já estiver preenchida, não é possível mudar uma coluna para a coluna de identidade ou convertê-la para a coluna de não identidade. Você precisa exportar todos os dados para fora, então você pode mudar o tipo de coluna para identidade ou vice-versa e, em seguida, importar dados de volta. Eu sei que é um processo doloroso, mas eu acredito que não há alternativa, exceto para o uso de seqüência como mencionado neste post.

 -1
Author: Softec, 2014-01-03 11:00:09