SQL Server: вставить идентификатор

У меня есть 2 таблицы ProductSize и Product .

Таблица продуктов :

 ProductID ProductCode ProductSizeID 

Таблица размеров продукта :

 ProductSizeID PackperCase ItemsperCase ItemSize 

У меня есть хранимая процедура, которая заполняет обе эти таблицы, однако я не могу заполнить таблицу Products без заполнения таблицы Product Size (так как мне нужен productsizeID ).

Как я могу это решить?

Мне нужно что-то, что показывает последний идентификатор, который я только что вставил в таблицу Productize. Хранимая процедура вставляет 1 запись за раз, но я действительно не хочу использовать MAX() для получения идентификатора, потому что в базе данных могут происходить другие вещи.

Сначала нужно вставить строку в ProductSize и вернуть идентификатор:

 INSERT INTO dbo.ProductSize(PackPerCase, ItemsPerCase, ItemSize) VALUES( ....., ....., .....); DECLARE @NewID INT = SCOPE_IDENTITY(); 

а затем используйте это во второй вставке в таблицу Products :

 INSERT INTO dbo.Products(ProductCode, ProductSizeID) VALUES( ....., @NewID); 

и вы сделали!

  • Фактический вставленный идентификатор строки
  • SQL быстрые INSERT без UPDATE
  • Выберите MAX (поле) +1 FROM ... Проблемы параллелизма
  • SQL Server, не может вставить нуль в поле первичного ключа?
  • Сравнение с вставкой в ​​запрос лучше
  • Microsoft Sql Management Studio, агент SQL Server, создайте вложенный массив с динамическими параметрами
  • Как избежать блокировки таблиц при вставке данных в таблицу
  • ASP.Net вставляет данные из текстового поля в базу данных
  • Объединение двух значений в Insert - SQL
  • Ввод строки SQL-запроса
  • Проблема с вложением в базу данных SQL Server с Java
  • Давайте будем гением компьютера.