mssql stored procedure create read update delete into database table
Edit
In the ever-evolving landscape of database management, the role of stored procedures in Microsoft SQL Server (MSSQL) for CRUD (Create, Read, Update, Delete) operations remains crucial. These procedures offer a structured way to interact with the database, ensuring that data manipulation is both efficient and secure.Create operations, as the name suggests, are used to insert new records into a database table. Read operations, on the other hand, are about retrieving data from the database. This can range from fetching a single record to extracting a complex set of data, often involving sorting and pagination. Stored procedures for reading data can significantly optimize performance, especially in large databases, by minimizing the data sent over the network and reducing server load.Stored procedures for updating records provide a secure way to modify data, often including checks to ensure that only valid data is saved and that unauthorized changes are prevented. Delete operations, though seemingly straightforward, carry the highest risk as they involve removing data from the database.
Create
/****** Object: StoredProcedure [dbo].[_sp_insert_template] Script Date: 23-12-2023 09:18:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Murugan Andezuthu Dharmaratnam
-- Create Date: 2023
-- Description: Inserts a new entry into the DeliveryType table.
-- Revision Date / Comments:
-- =============================================
CREATE PROCEDURE [dbo].[_sp_insert_template]
(
@pId uniqueidentifier,
@pName nvarchar(max),
@pUserName nvarchar(max),
@pIPAddress nvarchar(max)
)
AS
BEGIN
-- Prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
-- Error handling
BEGIN TRY
-- Insert the new entry
INSERT INTO [dbo].[YourTableName]([Name])
VALUES (@pName);
END TRY
BEGIN CATCH
-- Error handling
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
-- Log error to an error log table if needed.
-- INSERT INTO ErrorLog (ErrorMessage, ErrorSeverity, ErrorState, ErrorProcedure, ErrorLine)
-- VALUES (@ErrorMessage, @ErrorSeverity, @ErrorState, ERROR_PROCEDURE(), ERROR_LINE());
-- Raise the error with the original error details.
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
END CATCH
END
GO
Read rows of data from a table
/****** Object: StoredProcedure [dbo].[_sp_get_templates_WithPaging] Script Date: 23-12-2023 09:20:51 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Murugan Andezuthu Dharmaratnam
-- Create Date: 2023
-- Description: Description
-- Revision Dat / Comments:
-- =============================================
CREATE PROCEDURE [dbo].[_sp_get_templates_WithPaging]
(
@pCurrentPage integer = 1,
@pPageSize integer = 10,
@pUserName nvarchar(max),
@pName nvarchar(max)
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON
declare @Skip integer = @pPageSize * (@pCurrentPage-1);
-- Get statements for procedure here
select TOP (@pPageSize) * from (
-- Main select
select ROW_NUMBER() OVER (ORDER BY [dbo].[YourTableName].[Name]) AS ROW_NUM, * from [dbo].[YourTableName]
where 1=1
and [Name] like '%'+@pName+'%'
) x where ROW_NUM between @Skip and @Skip+@pPageSize order by ROW_NUM, [Name]
select count(NumericId) as [Count] from [dbo].[YourTableName]
where 1=1
and [Name] like '%'+@pName+'%'
END
GO
Read From Table Given Id
/****** Object: StoredProcedure [dbo].[_sp_get_template] Script Date: 23-12-2023 09:23:09 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Murugan Andezuthu Dharmaratnam
-- Create Date: 2023
-- Description: Description
-- Revision Dat / Comments:
-- =============================================
CREATE PROCEDURE [dbo].[_sp_get_template]
(
@pId uniqueidentifier
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON
-- Get statements for procedure here
select [dbo].[YourTableName].* from [dbo].[YourTableName] where [dbo].[YourTableName].Id = @pId
END
GO
Update Table
/****** Object: StoredProcedure [dbo].[_sp_update_template] Script Date: 23-12-2023 09:25:31 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Author: Murugan Andezuthu Dharmaratnam
-- Create Date: 2023
-- Description: Updates an entry in the DeliveryType table based on the Name.
-- Revision Date / Comments:
-- =============================================
CREATE PROCEDURE [dbo].[_sp_update_template]
(
@pId uniqueidentifier,
@pName nvarchar(max),
@pUserName nvarchar(max),
@pIPAddress nvarchar(max)
-- =============================================
)
AS
BEGIN
-- Prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
-- Update the specified entry
UPDATE [dbo].[YourTableName]
SET [Name] = @pName
WHERE [Id] = @pID;
END TRY
BEGIN CATCH
-- Error handling
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
-- Log error to an error log table if needed.
-- INSERT INTO ErrorLog (ErrorMessage, ErrorSeverity, ErrorState, ErrorProcedure, ErrorLine)
-- VALUES (@ErrorMessage, @ErrorSeverity, @ErrorState, ERROR_PROCEDURE(), ERROR_LINE());
-- Raise the error with the original error details.
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
END CATCH
END
GO
Update a Single Cell
/****** Object: StoredProcedure [dbo].[_sp_update_updatecell_template] Script Date: 23-12-2023 09:27:53 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- Author: Murugan Andezuthu Dharmaratnam
-- Create Date: 2023
-- Description: Updates an entry in the DeliveryType table based on the Name.
-- Revision Date / Comments:
-- =============================================
CREATE PROCEDURE [dbo].[_sp_update_updatecell_template]
(
@pId uniqueidentifier,
@pTableName nvarchar(max),
@pColumnName nvarchar(max),
@newValue nvarchar(max),
@pUserName nvarchar(max),
@pIPAddress nvarchar(max)
-- =============================================
)
AS
BEGIN
-- Prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT OFF;
BEGIN TRY
-- Update the specified entry
DECLARE @DynamicSQL NVARCHAR(MAX) = ''
SET @DynamicSQL = @DynamicSQL + 'update ' + @pTableName + CHAR(13) + CHAR(10)
SET @DynamicSQL = @DynamicSQL + 'set ' + @pColumnName + ' = ''' + @newValue + '''' + CHAR(13) + CHAR(10)
SET @DynamicSQL = @DynamicSQL + 'where Id = ''' + CAST(@pId as nvarchar(max))+ ''' '
-- Execute the dynamic SQL
EXEC sp_executesql @DynamicSQL
END TRY
BEGIN CATCH
-- Error handling
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
-- Log error to an error log table if needed.
-- INSERT INTO ErrorLog (ErrorMessage, ErrorSeverity, ErrorState, ErrorProcedure, ErrorLine)
-- VALUES (@ErrorMessage, @ErrorSeverity, @ErrorState, ERROR_PROCEDURE(), ERROR_LINE());
-- Raise the error with the original error details.
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
END CATCH
END
GO
Delete
/****** Object: StoredProcedure [dbo].[_sp_delete_template] Script Date: 23-12-2023 09:30:07 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Murugan Andezuthu Dharmaratnam
-- Create Date: 2023
-- Description: Deletes an entry from the DeliveryType table based on the Name.
-- Revision Date / Comments:
-- =============================================
CREATE PROCEDURE [dbo].[_sp_delete_template]
(
@pId uniqueidentifier
)
AS
BEGIN
-- Prevent extra result sets from interfering with SELECT statements.
SET NOCOUNT ON;
BEGIN TRY
-- Delete the specified entry
DELETE FROM [dbo].[YourTableName]
WHERE [Name] = @pId;
END TRY
BEGIN CATCH
-- Error handling
DECLARE @ErrorMessage NVARCHAR(4000);
DECLARE @ErrorSeverity INT;
DECLARE @ErrorState INT;
SELECT
@ErrorMessage = ERROR_MESSAGE(),
@ErrorSeverity = ERROR_SEVERITY(),
@ErrorState = ERROR_STATE();
-- Log error to an error log table if needed.
-- INSERT INTO ErrorLog (ErrorMessage, ErrorSeverity, ErrorState, ErrorProcedure, ErrorLine)
-- VALUES (@ErrorMessage, @ErrorSeverity, @ErrorState, ERROR_PROCEDURE(), ERROR_LINE());
-- Raise the error with the original error details.
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState);
END CATCH
END
GO