數(shù)據(jù)庫部署工具想要在授權(quán)人士將其項(xiàng)目部署到生產(chǎn)前在本地測試其項(xiàng)目,開發(fā)人員對(duì)生產(chǎn)數(shù)據(jù)庫只有有限訪問權(quán)限或沒有訪問權(quán)限數(shù)據(jù)庫部署工具可以幫到你
Migration of type MSSQL schema有兩種選擇:MS SQL default,generic。MS SQL default方式導(dǎo)入MYSQL后的schema為:MSSQL數(shù)據(jù)庫名_dbo,如:hanxin_dbo;generic方式導(dǎo)入MYSQL后的schema為:dbo
使用方法
1、點(diǎn)擊連接數(shù)據(jù)庫
2、server name
過程代碼
protected void butBulkCopy_OnClick(object sender, EventArgs e)
{
string ConStr = "database=TEST;uid=sa;pwd=sa;server=(local)";
//使用SqlBulkCopy把內(nèi)存表DataTable里的數(shù)據(jù)插入答卷數(shù)據(jù)表
using (SqlBulkCopy bcp = new SqlBulkCopy(ConStr))
{
//指定目標(biāo)數(shù)據(jù)庫的表名
bcp.DestinationTableName = "ARTICLE";
//建立數(shù)據(jù)源表字段和目標(biāo)表中的列之間的映射
bcp.ColumnMappings.Add("T", "TITLE");
bcp.ColumnMappings.Add("C", "CONTENTS");
bcp.ColumnMappings.Add("D", "DATA");
//定義生成通知事件之前 要處理的行數(shù)
bcp.NotifyAfter = 1000;
//處理完要處理NotifyAfter的行數(shù)時(shí)觸發(fā)的事件
bcp.SqlRowsCopied +=
new SqlRowsCopiedEventHandler(OnRowsCopied);
//寫入數(shù)據(jù)庫表
bcp.WriteToServer(dt);
//關(guān)閉SqlBulkCopy實(shí)例
bcp.Close();
}
}
private void OnRowsCopied(object sernder, SqlRowsCopiedEventArgs e)
{
Response.Write(e.RowsCopied.ToString());
}
DestinationTableName屬性定義了要復(fù)制表的目標(biāo)名稱
ColumnMappings返回一個(gè)SqlBulkCopyColumnMapping項(xiàng)集 合,SqlBulkCopyColumnMappingCollection.Add 方法參數(shù)為數(shù)據(jù)源類名稱,目標(biāo)表中目標(biāo)列的名稱.也可以先定義一個(gè)SqlBulkCopyColumnMapping,然后使用Add方法添 加,SqlBulkCopyColumnMapping主要用于與目標(biāo)數(shù)據(jù)表的表結(jié)構(gòu)不一致的情況
NotifyAfter指定生成通知事件之前要處理的行數(shù),指定在每次處理行完成的時(shí)候發(fā)生的事件,比如每次復(fù)制了1000行以后就提示1000行復(fù)制完成
NorthWindBulkOp.SqlRowsCopied +=
new SqlRowsCopiedEventHandler(OnRowsCopied);
最后WriteToServer方法,把SqlDataReader復(fù)制到指定的表中。