0

我有一个表,它是从另一个数据库中提取的提要。由于提要关闭,源数据库表经常没有被填充。我想做的只是对源数据库表中的记录数进行计数,以确保在提取数据馈送之前填充它们,因为在这种情况下,过时的数据比所有丢失的数据要好。我已经在其他数据库中完成了此操作,但不确定如何在 Microsoft SQL 2008 中执行此操作。

这是我试图开始工作的模型,最终将被放入预定的过程中:

CASE 
    WHEN 
        (SELECT COUNT(PC.id) FROM [server08].[db01].[dbo].[tblesrc01] PC) > 9000 
    THEN
        TRUNCATE TABLE DartDB.dbo.assets_feed;
        INSERT INTO tbl_feed
        (
                id,name,amt,row_updated
        )
        SELECT 
              Q.PK_ID AS id
            , Q.fullname AS name
            , Q.cost  AS amt
            , SYSDATETIME() AS row_updated

        FROM [server08].[db01].[dbo].[tblesrc01] Q;
    ELSE 
END

案例是否不适合此目的,或者我错过了什么?

4

1 回答 1

1

IF... ELSE在 SQL Server 中,您可以使用构造在存储过程中执行此操作。
这是解释如何使用该构造的MSDN 文档...

你的过程应该看起来像

IF ((SELECT COUNT(PC.id) FROM [server08].[db01].[dbo].[tblesrc01] PC) > 9000) 
    BEGIN
        TRUNC ... 
        INSERT ...
    END
于 2014-03-21T17:05:22.717 回答