我有以下查询。
UPDATE A SET A.[a]=A.[a]+C.value
FROM Table A INNER JOIN
(SELECT ID, STUFF((SELECT ','+P1.value FROM Table P1 WHERE P1.ID=P2.ID AND DATEDIFF(MI,LASTUPDATED,GETUTCDATE()) <=15 FOR XML PATH(''),TYPE).VALUE('(./TEXT())[1]','VARCHAR(MAX)'),1,1,'') AS alias FROM Table P2 ) P3
ON A.[ID]=P3.ID
所以我想将从上述查询中的select语句中提取的ID和字符串值插入到另一个表中。 我知道这个目标是如何实现的,即
insert into tablename(columns)
select (columns) from table.
所以我想在我的嵌套查询中加入相同的东西,假设它应该是这样的。
UPDATE A SET A.[a]=A.[a]+C.value
FROM Table A INNER JOIN
(INSERT INTO Tablename(ID,Value)
(SELECT ID, STUFF((SELECT ','+P1.value FROM Table P1 WHERE P1.ID=P2.ID AND DATEDIFF(MI,LASTUPDATED,GETUTCDATE()) <=15 FOR XML PATH(''),TYPE).VALUE('(./TEXT())[1]','VARCHAR(MAX)'),1,1,'') AS alias FROM Table P2 )) P3
ON A.[ID]=P3.ID
这不符合我的情况。我应该怎么做
答案 0 :(得分:0)
你不能这样做..
插入表格或更新表格。这两个查询不能一个一个地运行。
更好的选择是为此创建存储过程。
由于
答案 1 :(得分:0)
更新集A. [a] = A. [a] + C.value 从表A
GO
INSERT INTO Tablename(ID,Value (SELECT ID,STUFF((SELECT&#39;,&#39; + P1.value FROM Table P1 WHERE P1.ID = P2.ID AND DATEDIFF(MI,LASTUPDATED,GETUTCDATE())&lt; = 15 FOR XML PATH (&#39;&#39),TYPE)。价值(&#39;(./ TEXT())[1]&#39;,&#39; VARCHAR(MAX)&#39),1 ,1,&#39;&#39;)AS别名FROM表P2))P3 ON A. [ID] = P3.ID
答案 2 :(得分:0)
您可以创建一个由您的更新或插入驱动的触发器;通过这种方式,您将链接两个事件。您需要决定哪个事件触发另一个事件,具体取决于您的应用程序。