Usuário com melhor resposta
Como deixar um Campo não Chave para ñ ter valores duplicados

Pergunta
-
Olá Pessoal tenho o seguinte script no meu SqlServer 2005 Express e SqlServer Management Studio
CREATE TABLE [dbo].[nam_Users](
[UserID] [int] IDENTITY(1,1) NOT NULL,
[UserName] [nvarchar](256) NOT NULL,
[ProductID] [int] NOT NULL,
[LinkURL] [nvarchar](256) NOT NULL,
[DataValorReferencia] [nvarchar](10) NOT NULL,
[LiberarQuitado] [bit] NULL
CONSTRAINT [PK_nam_Users] PRIMARY KEY CLUSTERED
(
[UserID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Gostaria de Saber como no script no modo edit do SqlServer Management Studio ou em propriedades no modo design do mesmo como eu poderia setar o campo [UserName] para não conter valores duplicados (UserName duplicados) na mesma table
Fico no aguardo á quem puder me ajudar e desde já agradeço
LADEF
Respostas
-
Olá Luiz
Seu codigo ficará assim:
CREATE TABLE [dbo].[nam_Users]( [UserID] [int] IDENTITY(1,1) NOT NULL, [UserName] [nvarchar](256) NOT NULL unique(UserName), [ProductID] [int] NOT NULL, [LinkURL] [nvarchar](256) NOT NULL, [DataValorReferencia] [nvarchar](10) NOT NULL, [LiberarQuitado] [bit] NULL CONSTRAINT [PK_nam_Users] PRIMARY KEY CLUSTERED ( [UserID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!- Marcado como Resposta LuizIta sexta-feira, 12 de junho de 2009 04:12
Todas as Respostas
-
Boa Tarde,
Coloque uma Unique Constraint nessa coluna.
ALTER TABLE dbo.nam_users ADD CONSTRAINT UQ_Nome UNIQUE (UserName)
[ ]s,
Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.com
Usando o SSIS para importar várias planilhas de um mesmo arquivo Excel para o SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!591.entry
Classifique as respostas. O seu feedback é imprescindível -
-
Luiz,
Dentro do próprio comando Create Table, você pode definir esta constraint, veja abaixo o exemplo:
Create Table Teste (Codigo Int, Nome VarChar(100) Unique (UserName))
Pedro Antonio Galvão Junior - MVP - Windows Server System - SQL Server/Coordenador de Projetos/DBA -
Junior Galvão respondeu
Dentro do próprio comando Create Table, você pode definir esta constraint, veja abaixo o exemplo:
Create Table Teste (Codigo Int, Nome VarChar(100) Unique (UserName))
No caso o que vc me disse ácima seria um campo Nome e o UserName seria um aliás que substituirá o campo Nome
como unico fico no aguardo e desde já agradeço
LADEF -
-
-
Olá Luiz
Seu codigo ficará assim:
CREATE TABLE [dbo].[nam_Users]( [UserID] [int] IDENTITY(1,1) NOT NULL, [UserName] [nvarchar](256) NOT NULL unique(UserName), [ProductID] [int] NOT NULL, [LinkURL] [nvarchar](256) NOT NULL, [DataValorReferencia] [nvarchar](10) NOT NULL, [LiberarQuitado] [bit] NULL CONSTRAINT [PK_nam_Users] PRIMARY KEY CLUSTERED ( [UserID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY]
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS. Se útil, classifique!!!- Marcado como Resposta LuizIta sexta-feira, 12 de junho de 2009 04:12
-
Ok assim que terminar de construir minha table irei testar mas só mais uma pergunta quantos campos sem sêr campo chave mas com duplicação não autorizada que nem o
[UserName] [nvarchar](256) NOT NULL unique(UserName),
eu posso criar em minha table, ou existe um limite?
Fico no aguardo e desde já agradeço
LADEF -
Bom Dia,
A Unique Constraint "cria" um índice nos bastidores. Como o limite máximo de índices por tabela é de 250 você pode repartir esse valor entre os índices, a PK e as Unique Constraints. Acho que é muito mais que o suficiente
[ ]s,Gustavo Maia Aguiar
http://gustavomaiaaguiar.spaces.live.comComo eliminar linhas duplicadas e repetições no SQL Server
http://gustavomaiaaguiar.spaces.live.com/blog/cns!F4F5C630410B9865!584.entry
Classifique as respostas. O seu feedback é imprescindível -
-
Mas só para eu entender no linguajar popular na mesma table eu posso têr dois campos como este
[UserName] [nvarchar](256) NOT NULL unique(UserName),
[Email] [nvarchar](256) NOT NULL unique(Email),
dentro da table
Fico no aguardo e desde já agradeço
LADEF