Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
FBuilder Member Откуда: Сообщений: 29 |
Сижу на mssql 2005. Добавлял к таблице поле:alter table Table1 add Column1 int Null default Null И получил внезапно созданное ограничение с именем DF_Tabl_Colu_A7045GG или типа того. Зачем оно появилось и как впреть этого избежать? Заранее спасибо. |
24 апр 17, 16:48 [20430224] Ответить | Цитировать Сообщить модератору |
daw Member Откуда: Муром -> Москва Сообщений: 7381 |
FBuilder, его создали вот эти слова: "default Null". |
24 апр 17, 16:55 [20430261] Ответить | Цитировать Сообщить модератору |
o-o
Guest |
ам написал default, сам же и удивился созданию констрэйнта. а что тогда хотел получить этим самым default? чтобы избежать, не надо просить создание констрэйнта |
24 апр 17, 16:55 [20430262] Ответить | Цитировать Сообщить модератору |
FBuilder Member Откуда: Сообщений: 29 |
Кровь из глаз, как я мог незаметить... Копипаст проклятый.. Всем спасибо, можно закрывать тему. |
24 апр 17, 16:56 [20430268] Ответить | Цитировать Сообщить модератору |
Ролг Хупин Member Откуда: Чебаркуль Сообщений: 3984 |
в чём скрытый смысл добавления такого дефолта? и в чем разница между alter table Table1 add Column1 int Null default Null alter table Table1 add Column2 int Null ? |
||
24 апр 17, 17:18 [20430332] Ответить | Цитировать Сообщить модератору |
msLex Member Откуда: Сообщений: 8730 |
Я конечно чего-то могу не понимать, но зачем может потребовать такой дефолт? Он же и так "по дефолту" работает без всяких констрейнтов. Даже insert ... default values подставляет NULL для полей без дефолта. |
||
24 апр 17, 17:21 [20430340] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8350 |
Нет, зависит от настроек. |
||
24 апр 17, 18:06 [20430464] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
И NULL после int лишний, ЕМНИП |
||||
24 апр 17, 18:58 [20430558] Ответить | Цитировать Сообщить модератору |
msLex Member Откуда: Сообщений: 8730 |
Тоже интересно. |
||
24 апр 17, 21:31 [20430951] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
iap,
|
||
25 апр 17, 08:57 [20431538] Ответить | Цитировать Сообщить модератору |
msLex Member Откуда: Сообщений: 8730 |
Каких? ![]() |
||||
25 апр 17, 09:15 [20431579] Ответить | Цитировать Сообщить модератору |
serpentariy Member Откуда: Сообщений: 265 |
SET ANSI_NULL_DFLT_ON, SET ANSI_NULL_DFLT_OFF |
25 апр 17, 09:26 [20431605] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
serpentariy, точно :) |
25 апр 17, 09:28 [20431606] Ответить | Цитировать Сообщить модератору |
msLex Member Откуда: Сообщений: 8730 |
Действительно. Не зря я всегда явно NULL/NOT NULL для полей прописываю |
||
25 апр 17, 10:43 [20431787] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
по хорошему лучше писать чем не писать, но irl этот параметр никто не трогает, а если и тронет то включили и забыли |
||||
25 апр 17, 10:49 [20431818] Ответить | Цитировать Сообщить модератору |
msLex Member Откуда: Сообщений: 8730 |
Представляю как полезут глаза на лоб у стороннего "читателя" кода, когда при "выключенном" is_ansi_null_default_on на уровне базы он увидит такой код create table dbo.t ( id int ) go alter table dbo.t add constraint pk_t_id primary key (id) go |
||
25 апр 17, 11:04 [20431879] Ответить | Цитировать Сообщить модератору |
TaPaK Member Откуда: Kiev Сообщений: 6801 |
msLex, это очень внимательный сторонний читатель :) а по факту ни на что не влияет, если создался констрейн, то он будет nullable no и всё равно пофиг |
25 апр 17, 11:16 [20431937] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |