Если вы посмотрите на эту статью Microsoft Documentation:
https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlbulkcopy?redirectedfrom=MSDN&view=netframework-4.5.2
в разделе «Замечания», там будет написано:
SqlBulkCopy завершится неудачно при массовой загрузкеСтолбец DataTable типа SqlDateTime в столбец SQL Server, тип которого является одним из типов даты / времени, добавленных в SQL Server 2008.
Я не наблюдаю это поведение (сбой) и хотел бы знать,эта документация, возможно, устарела, и SqlBulkCopy был обновлен для поддержки этих типов данных.
Подробнее о том, что я делаю:
- Я создаю DataTable как источник для SqlBulkCopy.Столбец DataTable имеет тип System.DateTime .
- Целевой столбец в таблице базы данных имеет тип datetime2 .
- Я использую .Net 4.5 и SQL Server 2016 SP1
Все просто работает,Я не получаю никаких сбоев.Я даже пытался передать дату «01/01/0001» (вне диапазона для типа SQL datetime ) в DataTable, и она сохраняется как таковая в базе данных.
Я нашел это8 лет SO сообщение: Как я могу установить тип столбца при использовании SqlBulkCopy для вставки в столбец sql_variant , но я не использую sql_variant и в моем случае ничего не происходит.
Кто-нибудь может уточнить, что означает приведенная мной документация Microsoft?