SQLSever兩張數據表數據對比

SQLSever兩張數據表數據對比,第1张

SQLSever兩張數據表數據對比

兩張一樣的表對比其中一個表數據是否完整,不完整則從完整的表數據插入

#根據條件查詢到的表數據保存到DataTable中
 private void Insert( DataTable dt1,DataTable dt2)
{
		List list1 = new List();
		List list2 = new List();
		int a = 0;
		//獲取要對比的字段名
		foreach (DataRow Row in dt1)
		 {
		   list1.Add(Row["字段名"].ToString());
		 }
		 //保存到數組中
		   String[] Array1 = list1.ToArray();

		   foreach (DataRow Row in dt2)
		{
		   list2.Add(Row["字段名"].ToString());
		}
		 
		  String[] Array2 = list2.ToArray();
		  
		  
		//對比數據不完整的表中是否包含數據完整表中的數據

		  for (int j = 0; j < Array1.Length; j++)
		{
			//如果有則繼續下一個循環
			if (Array2.Contains(Array1[j]))
		  {
			continue;
		  }
		  //沒有就插入數據
		 else
		 {
			string strsq1l = "insert into  [" + 數據表名 + "](字段,字段,字段......)";
			string strsql2 = "select newid() as 字段, 字段,......from [" + 數據表名 + "]  where 條件";
			string strsql = strsq1l + strsql2;
			//數據查詢
			a = hp.insert(strsql);
			if (a != 0)
		   {
			  MessageBox.Show("數據插入成功!", "提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
		   }
			else
		   {
			MessageBox.Show("數據插入失敗!", "提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
		   }
		   
		   }

		 }
}

1、假如A表存在

则 insert into A(a,b,c) (select a,b,c from B) 

2、假如A表不存在

select a,b,c into A from B 

3、假如需要跨数据库(在相同的服務器上)

insert into ADB.[dbo].A(a,b,c)  (select a,b,c from BDB.[dbo].B)

insert into  [" + 數據表名 + "](字段,字段,字段......)
select  字段, 字段,字段......from [" + 數據表名 + "]  where 條件"

其中插入一個固定值

insert into  [" + 數據表名 + "](字段,字段,字段......)
select  "固定值" as 字段, 字段,字段......from [" + 數據表名 + "]  where 條件"

insert into  [" + 數據表名 + "](字段,字段,字段....)

插入一個隨機的值

select newid() as 字段字段,字段......from [" + 數據表名 + "]  where 條件"

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5635773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存