【发布时间】:2012-09-13 17:29:16
【问题描述】:
我终于开始接触存储过程了,我的第一个过程需要一点帮助。
我得到了基本布局并设置了一个 SP,它只设置两个变量并选择它们,不返回任何信息。
正确的历史记录,我有两个主记录表 tblRecordsCurrent (RecordID) 和 tblRecordsHistorical (RecordID) 以及一个父表 tblDataSet (DatasetID) 有一个标志 dsCurrent。
我每天使用新的 DataSetID 将 5000 条记录上传到 tblRecordsCurrent。当我上传一个新数据集时,前一天的数据集(5000 条记录)被移动到 tblRecordsHistorical 并且 tblDataSet 表中的 DSCurrent 标志更新为 False。
我将向 StoredProcedure 提供一个要移动的 DataSetID,以及目标(当前/历史的“C”或“H”)。首先我需要检查 DataSetID 是否存在,然后在相关的 tblRecordsCurrent/Historical 中是否有任何记录与 DataSetID。
1 - 我如何确定 DataSetID 是否存在,我假设它是 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 sql-server-2008 stored-procedures