日期:2014-05-18  浏览次数:20433 次

求助!一个表更新的问题
我是新手,想用C#写一个小程序把两张表相关联,我用的是SQL2000。
表1是line1  
ID NAME  

表2是line2
ID IP PRO
  



我想运行程序时,对比line1的ID和line2的ID,如果line2的ID有的数据而line1的ID没有,就把line2的ID多的数据添加到line1的ID里,如果line1的ID有的数据而line2的ID没有,就把line1的ID里多的数据删除。
说简单点就是line1的ID完全以line2的ID为基础一一对应!
这样的数据库语句怎么写啊??

比较急,请高手指教!!  


------解决方案--------------------
CREATE TABLE line1
(
ID INT,
NAME VARCHAR(30)
)

CREATE TABLE line2
(
ID INT,
IP VARCHAR(20),
PRO VARCHAR(30)
)

INSERT INTO line1 VALUES (1,'20')
INSERT INTO line1 VALUES (3,'30')

INSERT INTO line2 VALUES (2,'61.139.2.69','50')
INSERT INTO line2 VALUES (4,'192.168.0.1','60')
GO
CREATE PROC P_TEST
AS
BEGIN 
INSERT INTO line1 
SELECT ID,CHAR(65+RAND(CHECKSUM(NEWID()))*25) FROM line2 WHERE ID NOT IN ( SELECT ID FROM line1)
DELETE FROM line1 WHERE ID NOT IN ( SELECT ID FROM line2 )
END
GO

EXEC DBO.P_TEST
SELECT * FROM LINE1
SELECT * FROM LINE2

DROP PROC P_TEST
DROP TABLE line1
DROP TABLE line2