Eu tenho uma tabela existente que estou prestes a explodir porque não a criei com a ID
coluna definida para ser a coluna Identidade da tabela.
Usando o SQL Server Management Studio , criei um script "Criar para ..." da tabela existente e obtive isto:
CREATE TABLE [dbo].[History](
[ID] [int] NOT NULL,
[RequestID] [int] NOT NULL,
[EmployeeID] [varchar](50) NOT NULL,
[DateStamp] [datetime] NOT NULL,
CONSTRAINT [PK_History] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Minha pergunta é: como eu modificaria isso SQL
para que minha tabela resultante tenha a ID
coluna definida como a identidade ?
sql
sql-server
tsql
jp2code
fonte
fonte
Respostas:
fonte
PK_History
valor paraID
ou algo assim?Isso já foi respondido, mas acho que a sintaxe mais simples é:
O índice de restrição mais complicado é útil quando você realmente deseja alterar as opções.
A propósito, prefiro nomear essa coluna como HistoryId, para que corresponda aos nomes das colunas em relacionamentos de chave estrangeira.
fonte
ID int constraint PK_History primary key identity(1,1)
Acredito.NOT NULL
é redundante.é claro, já que você está criando a tabela no SQL Server Management Studio, você pode usar o designer de tabela para definir a especificação de identidade.
fonte
A chave única permite no máximo 2 valores NULL. Explicação:
Se você tentar inserir os mesmos valores abaixo:
Sempre que você obterá erros como:
fonte
ID
coluna única , não aName
coluna. Por que você adicionou a restrição exclusiva àName
coluna? Como isso te beneficia em suateppp
mesa?