67 lines
1.7 KiB
Transact-SQL
67 lines
1.7 KiB
Transact-SQL
-- =============================================
|
|
-- Delete All Customers for Testing
|
|
-- WARNING: This will delete ALL customer data!
|
|
-- =============================================
|
|
|
|
USE PowderCoatingDb;
|
|
GO
|
|
|
|
BEGIN TRANSACTION;
|
|
|
|
BEGIN TRY
|
|
PRINT 'Starting customer deletion...';
|
|
|
|
-- Count customers before deletion
|
|
DECLARE @CustomerCount INT;
|
|
SELECT @CustomerCount = COUNT(*) FROM Customers;
|
|
PRINT 'Found ' + CAST(@CustomerCount AS VARCHAR) + ' customers to delete';
|
|
|
|
-- Option 1: Delete related data first (safest)
|
|
-- Update Jobs to remove customer references
|
|
PRINT 'Removing customer references from Jobs...';
|
|
UPDATE Jobs SET CustomerId = NULL WHERE CustomerId IS NOT NULL;
|
|
|
|
-- Update Quotes to remove customer references
|
|
PRINT 'Removing customer references from Quotes...';
|
|
UPDATE Quotes SET CustomerId = NULL WHERE CustomerId IS NOT NULL;
|
|
|
|
-- Delete all customers (hard delete)
|
|
PRINT 'Deleting all customers...';
|
|
DELETE FROM Customers;
|
|
|
|
-- Verify deletion
|
|
SELECT @CustomerCount = COUNT(*) FROM Customers;
|
|
PRINT 'Remaining customers: ' + CAST(@CustomerCount AS VARCHAR);
|
|
|
|
PRINT 'Customer deletion completed successfully!';
|
|
COMMIT TRANSACTION;
|
|
PRINT 'Transaction committed.';
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
PRINT 'Error occurred: ' + ERROR_MESSAGE();
|
|
ROLLBACK TRANSACTION;
|
|
PRINT 'Transaction rolled back.';
|
|
END CATCH;
|
|
|
|
GO
|
|
|
|
-- Verify the results
|
|
SELECT
|
|
'Customers' AS TableName,
|
|
COUNT(*) AS RecordCount
|
|
FROM Customers
|
|
UNION ALL
|
|
SELECT
|
|
'Jobs with NULL CustomerId',
|
|
COUNT(*)
|
|
FROM Jobs
|
|
WHERE CustomerId IS NULL
|
|
UNION ALL
|
|
SELECT
|
|
'Quotes with NULL CustomerId',
|
|
COUNT(*)
|
|
FROM Quotes
|
|
WHERE CustomerId IS NULL;
|
|
GO
|