编程论坛
注册
登录
编程论坛
→
SQL Server论坛
客户端表中多条记录如何一次性insert进服务器端的同名的表中?
发布于 2012-04-24 13:59, 950 次点击
客户端与服务器端都装了SQL2005,数据库中有同样的一张表USERINFO,现在想在客户端操作,将客户端当天的记录一次性导入服务器端表中,求解?
15 回复
#2
netlin
2012-04-24 17:52
可以这样:
insert into [服务器名称].[数据库名称]..USERINFO select * from USERINFO where <当天记录的筛选条件>
要注意,也是关键的地方:在执行上面的命令前,客户端已经链接了服务器端数据库
#3
cnfarer
2012-04-24 19:19
必须有两个连接或者用数据分发
[
本帖最后由 cnfarer 于 2012-4-24 19:21 编辑
]
#4
png
2012-04-24 23:19
考虑用 Replication ?
#5
2012-04-25 09:36
有两个连接?在C#中就是有两个SqlConnection con了,上面的insert指定到哪个con中呢?
SqlConnection con1;
con1=new SqlConnection();
con1.ConnectionString="DataSource=192.168.0.1;UserID=sa;;Initial Catalog=sever";
con1.open();
SqlConnection con2;
con2=new SqlConnection();
con2.ConnectionString="DataSource=192.168.0.2;UserID=sa;;Initial Catalog=client";
con2.open();
string Sql="insert into 192.168.0.1.sever..USERINFO select * from 192.168.0.2.client..USERINFO where date='2012-04-20'";
SqlCommand cmd;
cmd=new SqlCommand();
cmd.Connection=con1;//是con1还是con2?
cmd.ConnandText=Sql;
cmd.ExecuteNonQuery();
问题是选择哪一个连接啊?是con1还是con2?求解?
[
本帖最后由 hb0zyj 于 2012-4-25 10:12 编辑
]
#6
cnfarer
2012-04-26 15:21
回复 5楼 hb0zyj
这样的SQL语句在SQL Server management studio中执行
#7
cnfarer
2012-04-26 15:27
也可以用openrowset()来导入数据
#8
2012-04-27 14:02
请cnfarer说详细点,你的意思是说在sql2005中无论con1还是con2都能执行吗
[
本帖最后由 hb0zyj 于 2012-4-27 14:07 编辑
]
#9
uw1984
2012-04-27 23:35
如果你是说客户端和服务器端有同样的表,要把客户端的此表当日更新信息送给服务器端
用sql server自带的导出功能即可啊,指定客户端的sql server为源,可以以整表或者query方式写过去
replication也可以吧,客户端是发布者, 服务器端是订阅者,把发布的内容加上那个表就可以
还有,你的应用为什么还要在客户端放数据库,如果你想要放到服务器端,连接直接写过去就可以,大不了照现在这样写两次就好了
难道根本就是异地。。。
#10
2012-04-28 12:49
我的意思是以程序的方式实现,应该如何操作
#11
cnfarer
2012-04-28 21:48
建议用存储过程
#12
cnfarer
2012-04-28 21:57
可以在服务器上先建一个链接服务器,然后就可以用insert into ....(select ....)
#13
uw1984
2012-04-30 20:44
192.168.0.1/2哪个是client/server你应该很清楚吧
c#具体怎么写不清楚,但是应该.net里有类的方法,用相应.sqlcommand之类的方法来引用sql语句就好了啊
#14
2012-04-30 21:44
Client和sever是两个数据库名,服务器上建链接服务器是什么东东
#15
clmyoult
2012-06-30 07:59
说的也是哦
1