22,207
社区成员
发帖
与我相关
我的任务
分享
//SqlBulkCopy实例
using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connString, SqlBulkCopyOptions.KeepNulls))
{
sqlbulkcopy.DestinationTableName = "表b名称";
for (int i = 0; i < dt.Columns.Count; i++)
{
sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
}
sqlbulkcopy.WriteToServer(dt);
}
--用sql语句把表b中的数值更新到表a中
update [表a] set username=b.username,qq=b.qq,sex=b.sex
from [表b] b
where b.userid=[表a].userid
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
Guid g = Guid.NewGuid();
Console.WriteLine(g.ToString());
Console.Read();
}
}
}
在数据库可以用 varchar(40) 或 UNIQUEIDENTIFIER 类型来保存。--用sql语句把表b中的数值更新到表a中
update [表a] set username=b.username,qq=b.qq,sex=b.sex
from [表b] b
where b.batch=@batch and b.userid=[表a].userid
delete from b where batch=@batch
--batch 字段可以做成 guid , 用以区别每个会话插入进来的批次数据。
update [表a] set……where b.addtime<=@now and 其他条件
delete from [表b] where addtime<=@now
当然如果能安装sql2008或者以上版本更好,这样就可以直接创建一个自定义类型 as table了,免得像上面这样绕弯
我是一些特殊原因,不好更改数据库版本
//SqlBulkCopy实例
using (SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(connString, SqlBulkCopyOptions.KeepNulls))
{
sqlbulkcopy.DestinationTableName = "表b名称";
for (int i = 0; i < dt.Columns.Count; i++)
{
sqlbulkcopy.ColumnMappings.Add(dt.Columns[i].ColumnName, dt.Columns[i].ColumnName);
}
sqlbulkcopy.WriteToServer(dt);
}
--用sql语句把表b中的数值更新到表a中
update [表a] set username=b.username,qq=b.qq,sex=b.sex
from [表b] b
where b.userid=[表a].userid