ALTER PROCEDURE [dbo].[sp_X_EXAMPLE_TRAN]
	@OUT_RETURN INT OUTPUT   -- 오류 : 0, 성공 :1
AS
BEGIN

SET NOCOUNT ON;

BEGIN TRY
	BEGIN TRAN
	DELETE FROM TBL_TEST 
	SELECT CAST('@ZZZ' AS INT)
	COMMIT TRAN -- 성공!
	SET @OUT_RETURN = 1
END TRY

BEGIN CATCH
	ROLLBACK TRAN -- 실패!
	
	SET @OUT_RETURN = 0
END CATCH

	
	
END

 

 

프로시저를 사용할때, 동적쿼리를 만들 일이 있으면 아래와 같이 사용하면 됩니다.

동적 쿼리에 파라미터를 사용할 일이 있으면, 아래 방법 외에 다른 방법을 추천합니다.

 

USE [intraOffice]
GO
/****** Object:  StoredProcedure [dbo].[sp_TEST3]    Script Date: 10/29/2019 14:33:57 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[sp_TEST3]
AS
BEGIN
	SET NOCOUNT ON;

	DECLARE @P1 NVARCHAR(100), @P2 NVARCHAR(100)
	SET @P2 = N'ZZZZZZZZZ'
	SET @P1 = N'SELECT AGE AS '+@P2+' FROM TEST_TBL WHERE NAME=N''당꿈응''';

	Execute sp_executesql @P1
	
END

 

프로시저 동적쿼리에 파라미터를 사용하는 경우 아래와 같은 방법을 사용하시면 됩니다.

-- ================================================
-- Template generated from Template Explorer using:
-- Create Procedure (New Menu).SQL
--
-- Use the Specify Values for Template Parameters 
-- command (Ctrl-Shift-M) to fill in the parameter 
-- values below.
--
-- This block of comments will not be included in
-- the definition of the procedure.
-- ================================================
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [DBO].[sp_test2]
	@name nvarchar(10)
AS
BEGIN
	SET NOCOUNT ON;
	
	Declare @main_Query nvarchar(100) ,@params nvarchar(50)
	Set @main_Query = 'select * from TEST_TBL where Name_kr=@pname'
	
	Set @params = '@pname nvarchar(10)'
	
	EXEC sp_executesql @main_Query,@params, @pname=@name
END
GO


sp_TEST 라는 이름으로 프로시저를 생성하는 코드는 아래와 같습니다.

 

 

-- ================================================ 
-- Template generated from Template Explorer using: 
-- Create Procedure (New Menu).SQL 
-- 
-- Use the Specify Values for Template Parameters  
-- command (Ctrl-Shift-M) to fill in the parameter  
-- values below. 
-- 
-- This block of comments will not be included in 
-- the definition of the procedure. 
-- ================================================ 
SET ANSI_NULLS ON 
GO 
SET QUOTED_IDENTIFIER ON 
GO 
-- ============================================= 
-- Author: <Author,,Name> 
-- Create date:  
-- Description: <Description,,> 
-- ============================================= 
CREATE PROCEDURE [dbo].[sp_TEST] 
( 
@mid varchar(30) 
) 
AS 
BEGIN 
-- SET NOCOUNT ON added to prevent extra result sets from 
-- interfering with SELECT statements. 
SET NOCOUNT ON; 

    -- Insert statements for procedure here 
   select * from TBL_TEST where mID=@mid 
END 
GO

jQuery 타이머 / jQuery 타이머 만들기 / 스톱, 스타드 구현

 

ajax 호출 후 응답시간이 얼마나 걸리는지 확인 하기 위해서 하나 만들어 보았습니다.

ajax 호출시작시 startTimer() 를 호출하고, ajax success 부분에서 stopTimer() 함수 호출해주면 되겠네요.

 

결과페이지

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<script language="javascript">


var timer =0;

function resetTimer(){
	$("#hid_sec").val(0);
	$("#sec").html("0");
}


function startTimer(){
	timer = setInterval(function () {
		$("#hid_sec").val(Number($("#hid_sec").val()) + 1);
		$("#sec").html($("#hid_sec").val());
	 }, 1000); 
}


function stopTimer(){
	clearInterval(timer);
}

</script>
</head>
<body>
 <div>
	<span id="sec">0</span>
	<input type="hidden" id="hid_sec" value="0"/>
	<a href="javascript:;" onclick="startTimer();">시작</a> 
	<a href="javascript:;" onclick="stopTimer();">스톱</a> 
	<a href="javascript:;" onclick="resetTimer();">리셋</a> 
</div>

</body>

</html>

 

+ Recent posts