Sql server SQL Server存储过程中的逻辑和检查表
我终于被存储过程弄湿了,我的第一个存储过程需要一些帮助 我得到了基本布局,并设置了一个SP,它什么也不做,只设置了两个变量并选择它们,不返回任何信息 在历史记录右侧,我有两个主记录表Sql server SQL Server存储过程中的逻辑和检查表,sql-server,sql-server-2008,stored-procedures,Sql Server,Sql Server 2008,Stored Procedures,我终于被存储过程弄湿了,我的第一个存储过程需要一些帮助 我得到了基本布局,并设置了一个SP,它什么也不做,只设置了两个变量并选择它们,不返回任何信息 在历史记录右侧,我有两个主记录表tblRecordsCurrent(RecordID)和tblRecordsHistorical(RecordID),以及两个tblDataSet(DatasetID)的父表,其中都有一个标志dsCurrent 每天我使用一个新的DataSetID将5000条记录上传到tblRecordsCurrent。上载新数据集
tblRecordsCurrent(RecordID)
和tblRecordsHistorical(RecordID)
,以及两个tblDataSet(DatasetID)
的父表,其中都有一个标志dsCurrent
每天我使用一个新的DataSetID将5000条记录上传到tblRecordsCurrent。上载新数据集时,前一天的数据集(5000条记录)将移动到tblRecordsHistorical,tblDataSet表中的DSCurrent标志将更新为False
我将向StoredProcedure提供一个要移动的数据集ID和目标('C'或'H'表示当前/历史)。首先,我需要检查DataSetID是否存在,然后在与DataSetID相关的tblRecordsCurrent/Historical中是否有任何记录
1-我如何确定DataSetID是否存在,我假设它是tblDataSet中的一个选择计数(*),其中DataSetID=@DataSet
,但这是如何实现的,我只是做:
@DataSetExistCount=SELECT COUNT(*) from tblDataSet where DataSetID=@DataSet
if @DataSetExistCount== then
@errCount = @errCount + 1
else
>>> MORE LOGIC <<<
END
@DataSetExistCount=从tblDataSet中选择COUNT(*),其中DataSetID=@DataSet
如果@DataSetExistCount==则
@errCount=@errCount+1
其他的
>>>更多逻辑您只需检查它是否存在:
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
太好了,谢谢。我从其他来源获得了一些信息,并将发布我的最终代码,以向任何可能的读者演示什么是可能的。在那之前我不会接受答案。