Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ключевые поля и IDENTITY / 3 сообщений из 3, страница 1 из 1
06.12.2001, 05:31
    #32018527
Termik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевые поля и IDENTITY
Профессионалы !
Подскажите, как вставить запись в таблицу путем запроса "INSERT INTO T1 SELECT * FROM T1 WHERE ...", где структура Т1 заранее неизвестна, известно только, что есть поле IDENTITY, являющееся первичным ключом. При попытке выполнить такой запрос, MSSQL выдает что-то типа: "Нельзя вставлять запись в поле типа IDENTITY при выключенном IDENTITY_INSERT", но вся фишка в том, что включать его не хотелось бы ...
...
Рейтинг: 0 / 0
06.12.2001, 05:54
    #32018529
Слон
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевые поля и IDENTITY
Создается динамический SQL statement, который считывает названия столбцов из INFORMATION_SCHEMA.COLUMNS и генерирует INSERT statement. Далее этот statement исполняется путем EXEC (...)
...
Рейтинг: 0 / 0
06.12.2001, 06:13
    #32018532
Michael
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ключевые поля и IDENTITY
In addition, to Slon's suggestion, to keep INDENTITY_INSERT turned on, you need to explicitely specify columns in your INSERT statement and exclude IDNETITY column from the list (don't use SELECT *).

INSERT Table1(col1, col2, ... col5)
SELECT col1, col2,.... col5
FROM Table2
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ключевые поля и IDENTITY / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]