私のSQLサーバーデータベースには、このストアドプロシージャがあります...
ALTER PROCEDURE [dbo].[NewBudget]
@year int,
@int nvarchar(3)
AS
BEGIN
SET NOCOUNT ON;
INSERT [NAOLI].[dbo].[BudgetsEditTbl]
([F_Year],[O_OrgCode],[O_OrgDesc],[S_SubObject],[S_SubDescrip],[B_BudgetAmt],[B_Initials],[B_CIPrefNo],[B_OrgBudgetAmt],[keyfield])
SELECT @year as [F_Year],[O_OrgCode],[O_OrgDesc],[S_SubObject],[S_SubDescrip], 0.00 as [B_BudgetAmt],@int as [B_Initials],null as [B_CIPrefNo],null as [B_OrgBudgetAmt],NewID()
FROM [NAOLI].[dbo].[BudgetsEditTbl]
END
何が起こるかは、パラメーター「@year」に従って、年の変更時に新しい年のレコードでデータベースを自動的に更新します。新年、組織コード、および対応するサブオブジェクトで更新する代わりに、同じ組織コードを持つ6つのレコードが得られます。つまり、基本的に手順を 6 回実行し、すべての混乱をデータベースに保存しています。この問題を解決する方法はありますか?
2011 | 536003 | Engineering | 6302 | Roads and Components | 0.00 | MC | N/A | 0.00
2011 | 536003 | Engineering | 6303 | Rights of Way -Acquire | 0.00 | MC | N/A | 0.00
2010 | 536003 | Engineering | 6302 | Roads and Components | 18300.00 | FG | N/A | 0.00
2010 | 536003 | Engineering | 6303 | Rights of Way -Acquire | 18300.00 | FG | N/A | 0.00
したがって、毎年、同じコードと情報が異なる量になるだけです...