![](/img/trans.png)
[英]How can i set an autoincrement to tinyint field in sql server compact?
[英]How to set SQL Server datatable insert and autoincrement column
我正在使用DataTable
和SqlBulkCopy
將數據插入SQL Server數據庫表中。
我設法使用以下設置批量插入行,但僅使用負值,否則由於值不唯一而導致沖突:
DataTable table = new DataTable();
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.Int32");
column.AutoIncrement = true;
column.AutoIncrementSeed = 0;
column.AutoIncrementStep = -1;
table.Columns.Add(column);
table.Columns.Add(DB_Base.DBTable_Start, typeof(DateTime));
我有一個循環,它會生成要插入的行,如下所示:
table.Rows.Add(null,tsoOptions.start);
然后,我設置表和連接,並使用WriteToServer()
方法寫入數據。 一切正常,出現行但帶有負的自動增量主鍵。
我如何修改此值,以便它將在最后一個(MAX)值之后繼續的正值附加行,而不在單獨的查詢中讀取最大值?
假設在數據庫中的表是在打開列自動增加(即IDENTITY
)的情況下正確創建的,請不要在代碼中重復此功能。 只需將記錄與該列的null
值一起發送到數據庫,數據庫就會完成其工作。 注釋掉這些行,然后嘗試:
//column.AutoIncrement = true;
//column.AutoIncrementSeed = 0;
//column.AutoIncrementStep = -1;
更新實際上,最好的方法是根本不映射標識列,因此注釋掉所有這些行:
//DataColumn column = new DataColumn();
//column.DataType = System.Type.GetType("System.Int32");
//column.AutoIncrement = true;
//column.AutoIncrementSeed = 0;
//column.AutoIncrementStep = -1;
//table.Columns.Add(column);
//table.Columns.Add(DB_Base.DBTable_Start, typeof(DateTime));
並確保您沒有使用SqlBulkCopyOptions.KeepIdentity
( 選中此復選框 )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.