SQL Server: вставить идентификатор
У меня есть 2 таблицы ProductSize
и Product
.
Таблица продуктов :
ProductID ProductCode ProductSizeID
Таблица размеров продукта :
- Sql Server 2005 - вставить, если не существует
- Как INSERT INTO в таблице 300 раз в цикле в SQL?
- Символы для использования при \ r \ n при вставке в SQL Server
- SQL Server: строки не соответствуют порядку
- SQL Server: вставьте строку в другую таблицу для каждой строки в другой таблице, которая соответствует критерию
ProductSizeID PackperCase ItemsperCase ItemSize
У меня есть хранимая процедура, которая заполняет обе эти таблицы, однако я не могу заполнить таблицу Products
без заполнения таблицы Product Size
(так как мне нужен productsizeID
).
Как я могу это решить?
Мне нужно что-то, что показывает последний идентификатор, который я только что вставил в таблицу Productize. Хранимая процедура вставляет 1 запись за раз, но я действительно не хочу использовать MAX()
для получения идентификатора, потому что в базе данных могут происходить другие вещи.
- Вставьте файл клиента в столбец базы данных сервера
- Msg 207, Уровень 16, Недопустимое имя столбца 'MH380'
- SQL Server генерирует уникальное значение
- Вставить скрипт для определенного набора строк в SQL
- SQL Server - как вставить запись и убедиться, что она уникальна
- Справка по вводу запроса SQL Server
- Можно ли внедрить ручное приращение с помощью простого SQL INSERT?
- Есть ли лучший способ получить уникальный идентификатор в INSERT?
Сначала нужно вставить строку в ProductSize
и вернуть идентификатор:
INSERT INTO dbo.ProductSize(PackPerCase, ItemsPerCase, ItemSize) VALUES( ....., ....., .....); DECLARE @NewID INT = SCOPE_IDENTITY();
а затем используйте это во второй вставке в таблицу Products
:
INSERT INTO dbo.Products(ProductCode, ProductSizeID) VALUES( ....., @NewID);
и вы сделали!