Insert Data Store Procedure:
CREATE TABLE #EMP
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[NAME] [nvarchar](50) NULL,
[AGE] [int] NULL,
[SALARY] [bigint] NULL
)
GO
INSERT INTO #EMP ([NAME], [AGE], [SALARY]) VALUES (N'DEV2', 23, 35000)
GO
/*
begin tran
--rollback
exec usp_Insert_EMPTemp_Form_Detail '<EMP>
<NAME>AAY</NAME>
<GE>22</AGE>
<SALARY>55000</SALARY>
</EMP>'
*/
CREATE PROCEDURE usp_Insert_EMPTemp_Form_Detail
@XML TEXT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @hDoc1 int
EXEC sp_xml_preparedocument @hDoc1 OUTPUT, @XML
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO #EMP(NAME,AGE,SALARY)
SELECT NAME,AGE,SALARY from openxml(@hDoc1,'/EMP',2)
WITH
(
ID varchar(10)'ID',
NAME varchar(50)'NAME',
AGE varchar(5)'AGE',
SALARY varchar(10) 'SALARY'
)
COMMIT TRANSACTION;
SELECT '1' as Status
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
SELECT '0' as Status
END CATCH ;
END
_________________________________________________________________________________
Update Data Store Procedure:
/*
begin tran
--rollback
exec usp_Update_C_Form_Detail '<EMP>
<ID>5</ID>
<NAME>AJAY</NAME>
<AGE>22</AGE>
<SALARY>55000</SALARY>
</EMP>'
*/
CREATE PROCEDURE usp_Update_EMP_Form_Detail
@XML TEXT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @hDoc1 int
EXEC sp_xml_preparedocument @hDoc1 OUTPUT, @XML
BEGIN TRANSACTION
BEGIN TRY
update EMP set EMP.NAME=T.NAME ,EMP.AGE =T.AGE,EMP.SALARY=T.SALARY
from (select ID,NAME,AGE,SALARY from openxml(@hDoc1 ,'/EMP',2)
with
(
ID varchar(10)'ID',
NAME varchar(50)'NAME',
AGE varchar(5)'AGE',
SALARY varchar(10) 'SALARY'
)
)T
where EMP.ID=T.ID
SELECT 1 as Status
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
SELECT 0 as Status
ROLLBACK TRANSACTION;
END CATCH
END
CREATE TABLE #EMP
(
[ID] [int] IDENTITY(1,1) NOT NULL,
[NAME] [nvarchar](50) NULL,
[AGE] [int] NULL,
[SALARY] [bigint] NULL
)
GO
INSERT INTO #EMP ([NAME], [AGE], [SALARY]) VALUES (N'DEV2', 23, 35000)
GO
/*
begin tran
--rollback
exec usp_Insert_EMPTemp_Form_Detail '<EMP>
<NAME>AAY</NAME>
<GE>22</AGE>
<SALARY>55000</SALARY>
</EMP>'
*/
CREATE PROCEDURE usp_Insert_EMPTemp_Form_Detail
@XML TEXT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @hDoc1 int
EXEC sp_xml_preparedocument @hDoc1 OUTPUT, @XML
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO #EMP(NAME,AGE,SALARY)
SELECT NAME,AGE,SALARY from openxml(@hDoc1,'/EMP',2)
WITH
(
ID varchar(10)'ID',
NAME varchar(50)'NAME',
AGE varchar(5)'AGE',
SALARY varchar(10) 'SALARY'
)
COMMIT TRANSACTION;
SELECT '1' as Status
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
SELECT '0' as Status
END CATCH ;
END
_________________________________________________________________________________
Update Data Store Procedure:
/*
begin tran
--rollback
exec usp_Update_C_Form_Detail '<EMP>
<ID>5</ID>
<NAME>AJAY</NAME>
<AGE>22</AGE>
<SALARY>55000</SALARY>
</EMP>'
*/
CREATE PROCEDURE usp_Update_EMP_Form_Detail
@XML TEXT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @hDoc1 int
EXEC sp_xml_preparedocument @hDoc1 OUTPUT, @XML
BEGIN TRANSACTION
BEGIN TRY
update EMP set EMP.NAME=T.NAME ,EMP.AGE =T.AGE,EMP.SALARY=T.SALARY
from (select ID,NAME,AGE,SALARY from openxml(@hDoc1 ,'/EMP',2)
with
(
ID varchar(10)'ID',
NAME varchar(50)'NAME',
AGE varchar(5)'AGE',
SALARY varchar(10) 'SALARY'
)
)T
where EMP.ID=T.ID
SELECT 1 as Status
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
SELECT 0 as Status
ROLLBACK TRANSACTION;
END CATCH
END
0 Comments