插入到表格使用Where子句
问题描述:
我使用SQL Server Express跟踪进出动作。我有两个表格(table1,table2)。 Table1包含ID和startTime键,而Table2包含ID,startTime和endTime。
无论何时进行输入,都会在Table1中使用所有键填充一行。这些键然后插入到表2中。
问题
我到运行中的问题是,我希望它能够识别ID是否已经存在于表2 - 并且,如果这样做,更新该ID的行,而不是创造一个新的。
现工作
IF(COUNT(DISTINCT ID) > 1 --When ID has been seen more than once?
INSERT INTO Table2(ID, startTime)
SELECT ID, CURRENT_TIMESTAMP
FROM Table1
WHERE ID = Table2.PTID
ELSE
INSERT INTO Table2(ID, startTime)
SELECT ID, CURRENT_TIMESTAMP
FROM Table1
在此先感谢您的帮助!分类新SQL,让我知道如果有什么我可以做,以改善我的问题。
答
这样的事情呢?
IF EXISTS (SELECT ID FROM Table2)
Update Table2
SET Table2.CURRENT_TIMESTAMP = Table1.CURRENT_TIMESTAMP --However you want to update
FROM Table2 tab2
JOIN Table1 tab1 on Table1.ID = Table2.PTID
ELSE
INSERT INTO Table2(ID, startTime)
SELECT ID, CURRENT_TIMESTAMP
FROM Table1
看看MERGE https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql – Horaciux