0

我正在使用由知名博主编写的部分复制脚本。我想让下面列出的部分从一个仅包含 1 行的完全不同的表中再添加 1 列。基本上,具有单行的表上有一个站点名称,我希望该表中的站点名称作为此 INSERT INTO 的一部分填充。

我知道 SQL 2005 引入了 OUTER APPLY,但我不确定这是否是最好的方法。欢迎任何建议。谢谢。

Insert Into dbo.dba_replicationMonitor
(
      monitorDate
    , publicationName
    , publicationDB
    , iteration
    , tracer_id
    , distributor_latency
    , subscriber
    , subscriber_db
    , subscriber_latency
    , overall_latency
    , SiteNameFromSiteInfoTable  --Need to add this


)
Select 
      @currentDateTime
    , @publicationToTest
    , @publicationDB
    , iteration
    , tracer_id
    , IsNull(distributor_latency, 0)
    , subscriber
    , subscriber_db
    , IsNull(subscriber_latency, 0)
    , IsNull(overall_latency, 
        IsNull(distributor_latency, 0) + IsNull(subscriber_latency, 0
        )
    , sitename = 'SELECT sitename FROM tblSiteInfo'  --need this query to insert as well
)
From @tokenResults;

我在考虑一个变量,但我不认为传递变量就足够了。任何帮助是极大的赞赏。谢谢。

4

1 回答 1

0

您可以像往常一样加入第二个表。如果另一个表中只有一行(并且永远只有一行),那么您的结果不会翻倍。所以,像这样:

 INSERT INTO dbo.dba_replicationMonitor (_column_list_)
 SELECT _@ToeknResultsColumns_, b.sitename
 FROM @TokenResults as a
 JOIN tblSiteInfo as b
 ON 1 = 1
于 2011-07-18T20:26:36.613 回答