Tworzyłem tabelę w mojej bazie danych SQL Server, gdy zwrócił moją uwagę konkretny atrybut Deterministic
kolumn bazy danych. Proszę zobaczyć zrzut ekranu poniżej:Nie deterministyczny typ danych w SQL Server
jestem już świadomy funkcji deterministyczne i niedeterministyczne SQL Server, ale chcę wiedzieć, że ma to zastosowanie nawet do danych typów danych w SQL Server w jakikolwiek sposób?
Powodem, dla którego pytam, jest to, że dosłownie skanowałem wszystkie typy danych dostępne w serwerach SQI v2008 i v2012, ale wartość pola Deterministic
dla wszystkich z nich zawierała Yes
. Nie pokazano No
dla żadnego pojedynczego typu danych.
Moje pytanie brzmi, czy jest to właściwy atrybut dowolnego typu danych w SQL Server, który nadal wpływa na sposób przechowywania wartości w kolumnie lub jest tylko dziedzictwem z przeszłości, może pochodzić z SQL Server 2000 lub SQL Server 2005, gdzie kiedyś istniały pewne typy danych, które nie miały charakteru deterministycznego. Każda informacja będzie bardzo przydatna do zrozumienia tej cechy typów danych w SQL Server. Czy mamy obecnie na serwerze SQL dowolny typ danych, który ma charakter niedeterministyczny?
Ponieważ nie widziałem No
dla każdego z typów danych, które dostałem więcej, wprawiło w zakłopotanie. Dużo też googlowałem, ale każde przeszukanie prowadzi mnie do funkcji deterministycznego i nie-deterministycznego SQL Server, jak ta poniżej i nikt nie mówi o charakterystyce związanej z typami danych SQL Server.
https://technet.microsoft.com/en-us/library/ms178091(v=sql.110).aspx
kolumna obliczana może być niedeterministyczny. – Blorgbeard
https://msdn.microsoft.com/en-AU/library/ms188300.aspx dodaj kolumnę obliczeniową dla kolumny a typu int -> kolumna b formuła = a + DATEPART (dd, GETDATE()) spowoduje Deterministic = No – artm
@Blorgbeard Utworzono kolumnę obliczeniową z tą formułą '([QtyAvailable] * [UnitPrice])'. Wciąż powoduje to 'Deterministic' =' Yes'. QtyAvailable i UnitPrice są dwiema kolumnami w mojej tabeli typu 'smallint' i' money' odpowiednio. – RBT