2010-05-26 11 views
12

jeśli uruchomić ten skrypt, aby pobrać wszystkie definations wartość domyślna w bazie danych:Domyślne wartości SQL Server: dlaczego z jednym lub dwoma nawiasami?

select 
    c.name as columnname, t.name as tablename, 
    d.definition as value, d.name as constraintname 
from 
    sys.default_constraints d 
    join sys.columns c 
     on d.parent_column_id = c.column_id 
     and d.parent_object_id = c.object_id 
    join sys.tables t 
     on c.object_id = t.object_id 

co można uzyskać wartości domyślne dużo jak:

(getdate()) 
((0)) 
('') 
('2099-12-31') 

Moje pytanie brzmi, dlaczego tam są nawiasy? Czy oni są nessessary? Dlaczego niektóre wartości mają jedną parę, a inne dwie? Czy licznik należy dokładnie przestrzegać podczas wykonywania skryptów T-SQL?

Odpowiedz

5

W ten sposób SQL przechowuje je wewnętrznie.

Nie są potrzebne, z wyjątkiem sytuacji, gdy IN jest rozszerzony do (.. OR ...) z jakiegoś powodu.

Powinieneś wypróbować ograniczenie sprawdzające z AND i OR. Lordy Lordzie.

Powiązane problemy