从SQL表中删除会导致删除的行比预期的多

  • 本文关键字:删除 SQL sql-server tsql
  • 更新时间 :
  • 英文 :


我在一个名为FINALDB的数据库中有一个股票代码表,其中一些也在纽约证券交易所的表中。假设这里只有3个不同的股票代码

我想引用FINALDB.NYSE表中与这3个tickers匹配的所有行,并删除这些行并将它们写入不同数据库中的表。实际上这些行被移走了,但是我得到了预期行数的3倍。这就好像它做了3次删除,因为在[FINALDB].[dbo].STOCKS表中有三个tickers。如果表中有50个股票与NYSE表中的股票相匹配,则删除的行数是预期的50倍。它对另一个表中出现的每个计时器执行删除操作。我做错了什么?

感谢这是我的代码:

DECLARE @currentDate date = CONVERT(date, GETDATE())
DELETE FROM FINALDB.dbo.NYSE
OUTPUT DELETED.Ticker, DELETED.Exchange,
DELETED.[Date], DELETED.[Open],
DELETED.[High], DELETED.[Low],
DELETED.[Close], DELETED.[Volume],
GETDATE() AS Delete_Date
INTO [STAGEDB].[dbo].Deleted_Data_Type5
FROM FINALDB.dbo.NYSE
INNER JOIN [FINALDB].[dbo].STOCKS ON [FINALDB].[dbo].STOCKS.[Ticker] = [FINALDB].[dbo].NYSE.[Ticker]
AND [FINALDB].[dbo].STOCKS.[Exchange] = [FINALDB].[dbo].NYSE.[Exchange]
AND [FINALDB].[dbo].STOCKS.[Date] = @currentDate

感谢将其更改为SELECT以比较结果的建议。我没有包括脚本的顶部部分,它是用python运行的。For ex in exchanges:

这导致Stock exchange (singapore)被引用了3次,每次出现一次表中的符号。名称:Combined, dtype: object0 SG1 SG2 SG

所以,它一遍又一遍地做删除操作(我不知道在后续运行中还有什么可以删除的)

相关内容

  • 没有找到相关文章

最新更新