Как передать datatable в качестве параметра в хранимой процедуре SQL server из C#
USE [callService] GO /****** Object: UserDefinedTableType [dbo].[code_front] Script Date: 10/24/2016 14:25:30 ******/ CREATE TYPE [dbo].[code_front] AS TABLE( [createdonUTC] [datetime] NOT NULL, [createdTimezone] [int] NOT NULL, [phaseCount] [nvarchar](2) NOT NULL ) GO
Это определяемая пользователем таблица, созданная в sql server 2008 r2.
Теперь я передача же объекта DataTable в C# для процедуры.
таблица sql server с именем "code_master" , содержащая следующие столбцы
code,createdonUTC,createdTimezone,phaseCount
где код в nvarchar (50) и первичный ключ.
Теперь процедура ввода данных в code_master---------
USE [callService] GO /****** Object: StoredProcedure [dbo].[Insert_Code] Script Date: 10/24/2016 13:51:41 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[Insert_Code] @tblcode code_front READONLY AS BEGIN SET NOCOUNT ON; INSERT INTO code_master(code,createdonUTC,createdTimezone,phaseCount) output 1 SELECT cast((convert(numeric(16,0),rand() * 8999999999999999) + 1000000000000000) as nvarchar) as code, createdonUTC,createdTimezone,phaseCount from @tblcode END
Я знаю, что ошибка заключается в "SELECT cast ((convert(numeric(16,0), rand () * 8999999999999999) + 1000000000000000) as nvarchar) as code"- так как в пользовательской таблице нет столбца "code".
Но я надеюсь, вы понимаете, чего я добиваюсь.
Я передам объемные данные из c# в пользовательскую таблицу sql, таблица будет генерировать случайные числа для каждой строки, а затем все данные со случайным числом будут вставлены в таблицу code_master, так как столбец "код" предназначен для случайного числа.
Пожалуйста, помогите мне, как этого достичь. По процедуре так или иначе.
Но я не хочу генерировать случайное число в самом c#, потому что боюсь, что при каждом запуске этого приложения случайное число может повторяться, как нигде, где я сохраняю предыдущие числа.
Но в sql он не генерирует одно и то же число (по крайней мере, для многих комбинаций, как я создал 16 цифр, которые сделают много кроров чисел).
Что я уже пробовал:
Написано выше. Процедура и таблицы.