Kopałem w bazie danych AdventureWorks2012 i widzę Row_GUID używany w kilku tabelach.
Moje pytanie składa się z 2 części:
Kiedy powinienem dołączyć kolumnę Row_GUID?
Jakie są zastosowania i zalety kolumny Row_GUID?
sql-server
uuid
SQLSuperHero
źródło
źródło
Oznaczenie kolumny jako
ROWGUIDCOL
umożliwiające odwołanie do niej$ROWGUID
w zapytaniach. Pozwala to uczynić zapytania bardziej ogólnymi, ponieważ nie trzeba sprawdzać, dla każdej tabeli, co to jest „unikalna” kolumna (jest to dość przydatne w przypadku funkcji takich jak Replikacja i FileStream, jak zauważyli odpowiednio @Aaron i @Martin ). Możesz utworzyć zapytanie w warstwie aplikacji, a nawet w dynamicznym SQL, które działa podobnieSELECT $ROWGUID AS [ID] FROM {table_name}
i po prostu iteruje listę tabel.Pamiętaj tylko, że
ROWGUIDCOL
oznaczenie nie wymusza wyjątkowości. Nadal będziesz musiał to egzekwować za pomocą klucza podstawowego, unikalnego indeksu lub unikalnego ograniczenia. Ta opcja nie wymusza również niezmienności kolumny. Do tego potrzebne byłyby uprawnieniaAFTER UPDATE
Trigger lub uprawnieniaDENY UPDATE
na poziomie kolumny w tej kolumnie.Na przykład:
Zwraca coś podobnego do:
Podobnie można użyć
$IDENTITY
do tabel, które mająIDENTITY
kolumnę.źródło