0

我终于被存储过程弄湿了,我的第一个过程需要一点帮助。

我得到了基本布局并设置了一个 SP,它只设置两个变量并选择它们,不返回任何信息。

就历史而言,我有两个主记录表tblRecordsCurrent (RecordID)tblRecordsHistorical (RecordID)一个父表,它们tblDataSet (DatasetID)都有一个 flag dsCurrent

每天我使用新的 DataSetID 将 5000 条记录上传到 tblRecordsCurrent。当我上传新数据集时,前一天的数据集(5000 条记录)被移动到 tblRecordsHistorical 并且 tblDataSet 表中的 DSCurrent 标志更新为 False。

我将为 StoredProcedure 提供一个要移动的 DataSetID,以及目标(当前/历史的“C”或“H”)。首先,我需要检查 DataSetID 是否存在,然后在相关的 tblRecordsCurrent/Historical 中是否有任何记录与 DataSetID。

1 - 我如何确定 DataSetID 是否存在,我认为它是 a SELECT COUNT(*) from tblDataSet where DataSetID=@DataSet,但它是如何实现的,我只是这样做:

@DataSetExistCount=SELECT COUNT(*) from tblDataSet where DataSetID=@DataSet
if @DataSetExistCount== then
     @errCount = @errCount + 1
else
   >>> MORE LOGIC <<<
END

编辑:

这是我的存储过程的一个很好的开始,如果有人对存储过程中的复杂嵌套逻辑感兴趣,我现在将其发布在一个单独的基于错误捕获的问题下:

SQL Server 存储过程中的错误处理

4

1 回答 1

2

您只需检查它是否存在:

If Exists ( select 1 from tblDataSet where DataSetID = @dataSet )
begin
   -- Do your move logic
end
else 
begin
    -- Doesn't exist so do something else
end
于 2012-09-12T14:58:09.777 回答