kontrola duplicit v databázi MS SQL   zodpovězená otázka

SQL, Databáze

Jde nějak hlídat aby nebyl zadán duplicitní záznam u sloupce, kde se vyskytují také hodnoty null ( nebo např. hodnoty ‘nezadáno’)?

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Asi len trigrom

nahlásit spamnahlásit spam -2 / 2 odpovědětodpovědět

Stačí přidat unikátní index nad požadovaný sloupec.

Pouze bude potřeba z tohoto unikátního indexu vyloučil hodnoty, které chcete, aby bylo možné opakovat.

Tedy například:

CREATE UNIQUE NONCLUSTERED INDEX [UQ_User_UserName] ON [dbo].[User] ([UserName] ASC) WHERE ([UserName] IS NOT NULL)
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Stále mi to hlásí

Incorrect syntax near the keyword 'WHERE'

Není tahle možnost dostupná v os MSSQL 2008 ?

Mám MS SQL 2005

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tato funkce se označuje jako tzv. Filtered index. Je dostupná až od MSSQL 2008.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A lze to nějak vyřešit ve 2005 ?

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Pokoušel jsem se index udělat nad view ( kde jsou vyfiltrovány položky s null) ale hlásí mi to

Cannot create index on view 'User_name' because the view is not schema bound.

Díky za radu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Toto vlákno je již zodpovězené. Založte na nový dotaz vlákno nové.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nijak snadno. Můžete použít triggery nebo ověřování v uložených procedurách. Na úrovni databáze to ale takto snadno udělat nejde.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Díky

založím tedy ev.nové vlákno.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback