SQL 使用声明列表中的值的 INSERT 语句
SQL INSERT statement using values in declared list
我是 SQL 的新手...正在寻找简单的解决方案。我有一个查询,我在其中声明了一个外键列表,如下所示:
DECLARE @CustomerFkList table (Fk int);
BEGIN
INSERT @CustomerFkList (Fk) VALUES (12345), (67890), (65432)
END
稍后在查询中,我想将一条记录插入到列表中每个值的特定 table 中,其中外键值进入外键字段。最好的方法是什么?
这是完整的代码——我目前所拥有的。我知道最后两行是错误的:
USE CustomerDatabase;
DECLARE @CustomerFkList table (Fk int);
BEGIN
INSERT @CustomerFkList (Fk) VALUES (x), (x), (x), (etc.)
END
BEGIN
UPDATE CustomerLifeCycleStatus SET EndDate=GETDATE()
WHERE (CustomerFk IN (SELECT Fk FROM @CustomerFkList)
AND LifeCycleStatus = 'Active'
AND EndDate IS NULL)
END
/* ------- below is what I need to iterate through ---------- */
INSERT INTO CustomerLifeCycleStatus (CustomerFk, LifeCycleStatus, StartDate)
VALUES (@CustomerFkList, 'Retired', GETDATE());
请帮忙? (我正在使用 SQL-Server 2008 R2,Microsoft SQL Server Management Studio)
无需迭代,只需一条语句即可全部插入:
INSERT INTO CustomerLifeCycleStatus (CustomerFk, LifeCycleStatus, StartDate)
SELECT FK, 'Retired', GETDATE()
FROM @CustomerFKList
我是 SQL 的新手...正在寻找简单的解决方案。我有一个查询,我在其中声明了一个外键列表,如下所示:
DECLARE @CustomerFkList table (Fk int);
BEGIN
INSERT @CustomerFkList (Fk) VALUES (12345), (67890), (65432)
END
稍后在查询中,我想将一条记录插入到列表中每个值的特定 table 中,其中外键值进入外键字段。最好的方法是什么?
这是完整的代码——我目前所拥有的。我知道最后两行是错误的:
USE CustomerDatabase;
DECLARE @CustomerFkList table (Fk int);
BEGIN
INSERT @CustomerFkList (Fk) VALUES (x), (x), (x), (etc.)
END
BEGIN
UPDATE CustomerLifeCycleStatus SET EndDate=GETDATE()
WHERE (CustomerFk IN (SELECT Fk FROM @CustomerFkList)
AND LifeCycleStatus = 'Active'
AND EndDate IS NULL)
END
/* ------- below is what I need to iterate through ---------- */
INSERT INTO CustomerLifeCycleStatus (CustomerFk, LifeCycleStatus, StartDate)
VALUES (@CustomerFkList, 'Retired', GETDATE());
请帮忙? (我正在使用 SQL-Server 2008 R2,Microsoft SQL Server Management Studio)
无需迭代,只需一条语句即可全部插入:
INSERT INTO CustomerLifeCycleStatus (CustomerFk, LifeCycleStatus, StartDate)
SELECT FK, 'Retired', GETDATE()
FROM @CustomerFKList