|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
SQL server 2000 Делаю процедуру по восстановлению данных. Есть таблица [Заказы], в ней есть поле [КодЗаказа] [int] IDENTITY(1,1) NOT NULL, в эту таблицу необходимо вставить запись из архива, причем [КодЗаказа] оставить "старый". ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:22 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Нет. Дополнительно потребуется установить для этой таблицы SET IDENTITY_INSERT в ON. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:24 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
SET IDENTITY_INSERT dbo.Заказы ON INSERT INTO dbo.Заказы(КодЗаказа, и т.д.) SELECT * FROM ЦАО.dbo.Заказы WHERE КодЗаказа=@KodZakaza SET IDENTITY_INSERT dbo.Заказы OFF Все работает. Можно ли сделать процедуру без перечисления полей, т.к. возможно добавление новых полей, помимо этой таблицы такую же вставку делаю в другие таблицы (хочется сократить текст процедуры)? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:26 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
авторВсе работает. Да ну?! Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:30 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
А так значение счетчика же повторяется!!! CREATE TABLE T1(col1 int identity(1,1)) GO INSERT T1 DEFAULT VALUES GO SET IDENTITY_INSERT T1 ON GO --INSERT T1 SELECT * FROM T1 --GO INSERT T1 (col1) VALUES (10) SET IDENTITY_INSERT T1 OFF GO select * from T1 --DROP TABLE T1 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:39 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
авторА так значение счетчика же повторяется!!! 1. Это просто пример, чтобы показать Вам, что не работает. 2. Свойство IDENTITY само по себе уникальность значений не обеспечивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:41 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Мне надо восстановить уже убитый заказ с его старым кодом заказа, поэтому я и ставлю SET IDENTITY_INSERT dbo.Заказы ON Вопрос был можно сделать вставку без перечисления полей? Пока я пришел к тому, что можно делать вставку без перечисления, есть снять с поля [КодЗаказа] [int] IDENTITY(1,1) NOT NULL и сделать его [КодЗаказа] [int] NOT NULL и соответственно не надо устанавливать SET IDENTITY_INSERT dbo.Заказы ON. Но это мне кажется рисковый подход и такие манипуляции с базой можно делать только когда все пользователи отключены. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:52 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
авторВопрос был можно сделать вставку без перечисления полей? Ответ был дан в первом ответе в этом посте. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:54 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
SerjiosanНо это мне кажется рисковый подход и такие манипуляции с базой можно делать только когда все пользователи отключены. повысьте уровень изоляции ps: а использование * - это лень или попытка унифицировать операцию? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 17:58 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Для "снятия" свойства identity необходим промежуточный столбец или таблица. Для таких манипуляций нужна Sch-M блокировка, которая несовместима ни с какой другой. При активно используеой таблице никакой уровень изоляции не поможет. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 18:00 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
повысьте уровень изоляции ps: а использование * - это лень или попытка унифицировать операцию? - Это попытка унификации, но я так полагаю что тут не обойтись без динамического insert... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 18:15 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
повысьте уровень изоляции - какие еще варианты повышения уровня изоляции? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 18:17 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
> Можно ли сделать процедуру без перечисления полей, > т.к. возможно добавление новых полей, а вот это будет большой граблей, которая больно стукнет потом ... |
|||
:
Нравится:
Не нравится:
|
|||
07.05.2008, 19:12 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Так как правильно сделать, чтобы не наступать потом на грабли? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 09:44 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
SerjiosanТак как правильно сделать, чтобы не наступать потом на грабли? Перечислить поля явно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 09:45 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
А потом каждый раз разбираться, если в какой-то из таблиц произошли изменения в ее структуре и сравнивать порядок полей... Мне кажется надо делать динамический insert. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 09:50 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Или отказаться от Identity. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 09:52 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Можно заблокировать таблицу для пользователей на время выполнения процедуры, если да, то как это делается? по какому ключевому слову в BOL искать? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 09:55 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Нет такой команды "заблокировать таблицу". Для выполнения ALTER необходима упомянутая выше Sch-M блокировка, которую и будет пытаться наложить сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 10:03 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
SerjiosanМожно заблокировать таблицу для пользователей на время выполнения процедуры, если да, то как это делается? по какому ключевому слову в BOL искать? оберните транзакцией Код: plaintext 1. 2. 3. 4. 5.
правда, как писал pkarklin на время выполнения этого таблица будет блокирована не только на модификацию, но и чтение. авторПри активно используеой таблице никакой уровень изоляции не поможет. активно = постоянно занята? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 10:23 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
авторПри активно используеой таблице никакой уровень изоляции не поможет. активно = постоянно занята?[/quot] Нет, ночью или в выходные свободна. Время есть когда можно восстановить заказ, но я хотел сделать, чтобы в любое время можно было восстанавливать заказ. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:11 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
KGP авторПри активно используеой таблице никакой уровень изоляции не поможет. активно = постоянно занята? Да. Если будеть длительно висеть лок. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 12:43 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Serjiosan авторПри активно используеой таблице никакой уровень изоляции не поможет. активно = постоянно занята? Нет, ночью или в выходные свободна. Время есть когда можно восстановить заказ, но я хотел сделать, чтобы в любое время можно было восстанавливать заказ.[/quot] это можно запускать в 'любое время', не думаю, что эта таблица 'так сильно занята' ... |
|||
:
Нравится:
Не нравится:
|
|||
08.05.2008, 14:45 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Здравствуйте! Скажите, а в SQL Server 2017 можно вставить данные с помощью INSERT без перечисления столбцов таблицы? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 16:21 |
|
Можно ли сделать insert в таблицу без перечисления полей?
|
|||
---|---|---|---|
#18+
Борис Гаркун Здравствуйте! Скажите, а в SQL Server 2017 можно вставить данные с помощью INSERT без перечисления столбцов таблицы? как и раньше если нет identity/timestamp/rowversion и может ещё чего ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 16:26 |
|
|
start [/forum/topic.php?fid=46&msg=39932279&tid=1686414]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 160ms |
0 / 0 |