Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL Server中使用已删除记录中的值_Sql_Sql Server_Sql Server 2012 - Fatal编程技术网

在SQL Server中使用已删除记录中的值

在SQL Server中使用已删除记录中的值,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我需要删除记录并在另一个查询中按其Id搜索,如下所示 select * from Flat WHERE Flat.nu in (delete top (1) from temp output deleted.nu) 我想你们不能互相操纵 我建议您使用一个临时表:tempIdsid int。 然后使用如下输出子句: delete top(1) from temp output deleted.id into tempIds; 注意:最好使用CTE删除第一行 然后查询tempIds表,然后清除

我需要删除记录并在另一个查询中按其Id搜索,如下所示

select * from Flat
WHERE  Flat.nu in (delete top (1) from temp output deleted.nu)

我想你们不能互相操纵

我建议您使用一个临时表:tempIdsid int。 然后使用如下输出子句:

delete top(1) from temp
output deleted.id into tempIds;
注意:最好使用CTE删除第一行


然后查询tempIds表,然后清除tempIds。

试试这种方法。。它可能会帮助你

DECLARE @ID_CAPTURE TABLE (ID Int)
DELETE TOP(1) FROM TEMP
OUTPUT deleted.Nu into @ID_CAPTURE

SELECT * FROM FLAT WHERE NU IN (SELECT * FROM @ID_CAPTURE)

如果有多条记录,上述代码片段也适用。

为什么需要它-当您可以使用触发器和级联删除-;。如果只想查找无效的FK,只需使用左联接并筛选空结果即可;。shA.t这是一个大型查询的一部分SELECT*from PLAT INTERNAL join delete top 1 from dbo.temp output deleted.nu del on PLAT.nu=del.nuBest将中间表设为临时表。@TT;。我不太喜欢在这种情况下使用常规表。