在t-sql中有循环吗?用它们是个好主意?

use*_*073 3 sql t-sql database sql-server

如果我问这个问题,请原谅我,但我不是SQL Server,也不是SQL开发人员.

我有一个CSV导入到一个表中让我们称之为我在SQL Server 2005中即时创建的.

我想要做的是根据导入到我创建的表T中的数据对其他表运行一些查询.例如:

select * 
from TableX 
where customerID = [this should contain the customerID from the table T]
Run Code Online (Sandbox Code Playgroud)

然后,如果我找到它,我需要更新相同的表T,如果不是我移动...直到该csv文件中的最后一条记录.任何想法将不胜感激.

Lam*_*mak 5

没有循环需要你想要的东西,似乎你只需要IN:

SELECT *
FROM TableX
WHERE CustomerID IN (SELECT CustomerID FROM TableT)
Run Code Online (Sandbox Code Playgroud)

如果您需要TableX使用某个标记进行更新(如果存在)TableT,则应该是:

UPDATE TableX
SET Mark = 1
WHERE CustomerID IN (SELECT CustomerID FROM TableT)
Run Code Online (Sandbox Code Playgroud)

如果你需要更新TableX一些值TableT,它应该是这样的:

UPDATE X
SET X.Column = T.Column
FROM TableX X
INNER JOIN TableT T
ON X.CustomerID = T.CustomerID 
Run Code Online (Sandbox Code Playgroud)