我要从一个表中读取name,tel等一些数据,写入另外一个表中,写的时候要判断name字段在在目标表中是否已经存在,如果存在则更新tel字段,如果不存在则写入整个记录,我是这么写的:sSql:='select db1.*,db2.name from db1,db2 where db1.name=db2.name';
With ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add(sSql);
Open;
while not EOF do
begin
//更新数据;
end;
end;sSql:='select db1.*,db2.name from db1,db2 where db1.name<>db2.name';
With ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add(sSql);
Open;
while not EOF do
begin
//插入数据;
end;
end;请问这样写符合不符合上面的要求
另外怎么写能提高效率谢谢!
With ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add(sSql);
Open;
while not EOF do
begin
//更新数据;
end;
end;sSql:='select db1.*,db2.name from db1,db2 where db1.name<>db2.name';
With ADOQuery1 do
begin
Close;
Sql.Clear;
Sql.Add(sSql);
Open;
while not EOF do
begin
//插入数据;
end;
end;请问这样写符合不符合上面的要求
另外怎么写能提高效率谢谢!
解决方案 »
- 为什么我的程序用了异常处理后会自动退出,而他人的程序却不会呢?郁闷.
- 如何实现无客户端 发送消息!!
- 高手支招:delphi或cb中如何实现vc中atl的IObjectSafe接口
- 急!!!大牛们,来看看啊~~~
- 请教这个登录代码如何写
- 【使用listview时的疑惑】,请来看一看★★★
- 如何在textfile类型文件的头部加入一个string?
- 还是不行啊
- 初学写“记事本”,想在关闭MEMO前提示是否保存文件,不知道在哪个里面编辑,onchange?onexit?
- 取得程序路径的问题
- 100分!!!问题只要能解决,值得!!! DateTimePicker 的问题。
- 高手进来帮个忙呀,一个关于DBGridEh增加一列显示行号的的功能,谢谢~~
DECLARE @T TABLE(NAME VARCHAR(10),TEL VARCHAR(20))
INSERT @T SELECT 'AA','345'
UNION ALL SELECT 'BB','123'
UNION ALL SELECT 'CC','897'
---TABLE2
DECLARE @T1 TABLE(NAME VARCHAR(10),TEL VARCHAR(20))
INSERT @T1 SELECT 'AA','345'
UNION ALL SELECT 'BB','345'
--判断存在时更新记录IF EXISTS
(SELECT 1 FROM @T A WHERE EXISTS(SELECT 1 FROM @T1 WHERE NAME=A.NAME))
UPDATE A
SET TEL=B.TEL
FROM @T1 A INNER JOIN @T B
ON A.NAME=B.NAME
--插入在table1中table2不存在
INSERT @T1
SELECT *
FROM @T A
WHERE NOT EXISTS
(SELECT 1 FROM @T1 WHERE A.NAME=NAME)
SELECT * FROM @T1