3.0 KiB
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.sql→usp_SubmitSearch041_CreateStartSearchProcedure.sql→usp_StartSearch042_CreateCompleteSearchProcedure.sql→usp_CompleteSearch043_CreateResetPartialSearchesProcedure.sql→usp_ResetPartialSearches
2. Docker Database (Manual Update)
Since DbUp won't re-run already-executed scripts:
- Drop old procedures from Docker database
- 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
- Build succeeds
- All existing tests pass
- Docker database has renamed procedures
SELECT name FROM sys.proceduresshowsusp_prefix on all procedures