Добавление столбца Timestamp в Datatable - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть хранимая процедура, которая принимает пользовательский тип таблицы (UDTT) в качестве одного из параметров, и теперь мне нужно вызвать эту хранимую процедуру из моего кода C #.

Я создал файл dbml и класс, который имитирует мой UDTT в базе данных.

Теперь проблема в том, что существует столбец с именем Version типа TIMESTAMP, присутствующий в хранимой процедуре UDTT.

Это структура моего пользовательского типа таблицы:

CREATE TYPE dbo.sampletype as
ID INT NULL,
Name String NULL,
Version TIMESTAMP NULL

Теперь мне нужно передать код UDTT через C #, поэтому я создал DataTable и добавил столбец Версия с типом как byte[]. Я отправляю значение как NULL.

Теперь, когда я вызываю хранимую процедуру, используя классический ADO.net (используя cmdparameters, SqlExecuteReader), я получаю следующую ошибку.

Cannot insert value to timestamp column.

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Значения для типа данных TIMESTAMP автоматически генерируются SQL Server; Вы не можете их ВСТАВИТЬ.

0 голосов
/ 07 декабря 2011

Проверьте здесь отображение между типами SQL и типами CLR. Я думаю, вы должны попытаться изменить TIMESTAMP на DATETIME2.

...