Files
jdescopingtool/PLANS/2026-01-06-stored-procedure-naming-convention-design.md
T
2026-01-06 15:43:22 -05:00

3.0 KiB

Stored Procedure Naming Convention Design

Goal

Rename stored procedures to follow SQL Server best practice usp_ prefix convention for consistency and clarity.

Current State

Current Name Has usp_ Prefix
SubmitSearch No
StartSearch No
CompleteSearch No
ResetPartialSearches No
usp_ValidateSearchCriteria Yes (already correct)

Target State

Current New
SubmitSearch usp_SubmitSearch
StartSearch usp_StartSearch
CompleteSearch usp_CompleteSearch
ResetPartialSearches usp_ResetPartialSearches

Implementation Approach

1. SQL Scripts (Modify Existing)

Update scripts 040-043 directly with new procedure names:

  • 040_CreateSubmitSearchProcedure.sqlusp_SubmitSearch
  • 041_CreateStartSearchProcedure.sqlusp_StartSearch
  • 042_CreateCompleteSearchProcedure.sqlusp_CompleteSearch
  • 043_CreateResetPartialSearchesProcedure.sqlusp_ResetPartialSearches

2. Docker Database (Manual Update)

Since DbUp won't re-run already-executed scripts:

  1. Drop old procedures from Docker database
  2. Execute updated CREATE statements directly

3. C# Constants Class (New File)

Create StoredProcedures.cs in JdeScoping.DataAccess:

namespace JdeScoping.DataAccess;

/// <summary>
/// Constants for stored procedure names.
/// </summary>
public static class StoredProcedures
{
    public const string SubmitSearch = "usp_SubmitSearch";
    public const string StartSearch = "usp_StartSearch";
    public const string CompleteSearch = "usp_CompleteSearch";
    public const string ResetPartialSearches = "usp_ResetPartialSearches";
    public const string ValidateSearchCriteria = "usp_ValidateSearchCriteria";
}

4. Repository Update

Update LotFinderRepository.SearchManagement.cs to use constant:

// Before
await using var command = new SqlCommand("SubmitSearch", connection)

// After
await using var command = new SqlCommand(StoredProcedures.SubmitSearch, connection)

5. Documentation Updates

Update all files mentioning procedure names:

File Updates Needed
DOCUMENTATION/Architecture/Testing.md Procedure references
DOCUMENTATION/Architecture/Database.md Procedure references
DOCUMENTATION/search_creation_page_new.md Procedure references
OpenSpec specs Any procedure references
PLANS files Historical references

Files Changed

Category Files
SQL Scripts 4 files (040-043)
C# New 1 file (StoredProcedures.cs)
C# Modified 1 file (LotFinderRepository.SearchManagement.cs)
Documentation ~5 files
Docker Manual SQL execution

Verification

  1. Build succeeds
  2. All existing tests pass
  3. Docker database has renamed procedures
  4. SELECT name FROM sys.procedures shows usp_ prefix on all procedures