Передача набора данных в MSSQL из С# в одном запросе

Часто бывает необходимость передать за один раз некоторый набор данных в процедуру, в этой публикации будет приведен пример как это сделать на языке C# для базы данных MSSQL.

Использовать будем обычный способ вызова процедуры без каких либо фреймворков.

Для начала создадим тестовую таблицу в базе данных:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Bottles](
	[Uid] [uniqueidentifier] NOT NULL,
	[Name] [varchar](50) NULL,
	[Color] [varchar](50) NULL
) ON [PRIMARY]
GO

В данной таблице будем размещать бутылки разных названий и цветов (просто для теста).

Подробнее

Добавление записей в таблицу игнорируя IDENTITY в MSSQL

Добавление записей в таблицу игнорируя IDENTITY:

-- Включаем
SET IDENTITY_INSERT tableA ON

-- Необходимо задать полный список солей для  INSERT:

INSERT Into tableA ([id], [c2], [c3], [c4], [c5] ) 
SELECT [id], [c2], [c3], [c4], [c5] FROM tableB

-- Вариант "INSERT Into tableA SELECT ........" работать не будет

-- Выключаем
SET IDENTITY_INSERT tableA OFF
Подробнее