[mssql] Можно ли вставить значение в поле IDENTITY ?
SET IDENTITY_INSERT [ database. [ owner. ] ] { table } { ON | OFF }
use db;
SET IDENTITY_INSERT {tbl} {ON};
insert into tbl values (-10,'blah 1','');
insert into tbl values (-20,'blah 2','');
SET IDENTITY_INSERT {tbl} {OFF};
а мне в ответ
[Microsoft][ODBC SQL Server Driver]Syntax error or access violationВ моём случае это Syntax Error или Access Violation ?
И что нада сделать в том или в другом случае ?
(itity поле это то в которое я пытаюсь сунуть -10 и -20)
SET IDENTITY_INSERT aaa ON
insert into aaa values (-10,'blah 1','')
insert into aaa values (-20,'blah 2','')
SET IDENTITY_INSERT aaa OFF
Только я не знаю как поведет себя MSSQL когда ты попытаешься отрицательные значения запихнуть в itity поле
пишет
An explicit value for the itity column in table 'aaa' can only be specified when a column list is used and IDENTITY_INSERT is ON.и с положительными значениями и с отрицательными
....
что такое column list и как его можно to use ?
в insert-е после имени таблицы укажи имена колонок
В общем есть таблица
use db;
create table aaa
(
id int IDENTITY PRIMARY KEY,
field1 varchar(32
field2 varchar(32)
);
как мне в неё вставить строку типа (-10,' blah ', 'blah') ?
insert into aaa (id, field1, field2) values (-10, 'blah', 'blah');
insert into aaa (id, field1, field2) values (-10, 'blah', 'blah');
SET IDENTITY_INSERT aaa OFF
Ты чем пользуешься?
Я запустил SQL Query Analyzer.
При попытке сделать
insert into aaa (id, field1, field2) values (-10, 'blah', 'blah');
он ругается и говорит, что надо сделать .
(Server: Msg 544, Level 16, State 1, Line 1
Cannot insert explicit value for itity column in table 'aaa' when IDENTITY_INSERT is set to OFF.)
SET IDENTITY_INSERT aaa ON
GO
insert into aaa (id, field1, field2) values (-10, 'blah', 'blah')
SET IDENTITY_INSERT aaa OFF
GO
Только вот непонятно чем запись
insert into aaa (id, field1, field2) values (-10, 'blah', 'blah')
в данном случае принципиально отличаеццо от
insert into aaa values (-10, 'blah', 'blah')
и почему с 1-й работает а со 2-й нет
заморочки t - sql не всегда очевидны и понятны, поэтому надо всегда юзать хелп, когда очевидное решение не является верным
а где этот хелп то кстате ?
в Sql query analizer'е при выборе чего либо из меню хелп ничего не происходит ...
Shift-F1 пробовал? Хелп ставится с SQL Server, поищи Books Online.
Только вот непонятно чем записья так понимаю что вторая запись неверна в принципе
insert into aaa (id, field1, field2) values (-10, 'blah', 'blah')
в данном случае принципиально отличаеццо от
insert into aaa values (-10, 'blah', 'blah')
и почему с 1-й работает а со 2-й нет
потмоу как верна вот такая запись:
insert into aaa values ('blah', 'blah')
можешь проверить
тойсть тама как будто 2 столбца
это сделано специально и очень логично
это было б логично , если б itity_insert is OFF ,а так не совсем логично
ничего страшного
обычно все СУБД не блещут юзабильностью
Оставить комментарий
Alena_08_11
появилось потребность вставить несколько значений в поле IDENTITY, можно ли это сделать ?и если можно - то как ?