CREATE PROCEDURE GENMATCH(@STARTTIME datetime output, @ENDTIME datetime output,@PTYPE int output)
AS
DECLARE @JN_MCM_ID INT --宣告變數
DECLARE @JN_NAME VARCHAR(30)
DECLARE @JN_VALUE VARCHAR(30)
select @STARTTIME = getdate() --給定回傳變數的值
delete from JobNeededTemp --先刪除資料表中的資料
delete from MatchLogForDailyPaper
DECLARE JOBNEEDEDTEMP_CURSOR_1 CURSOR FOR --宣告CURSOR 將值賦予CURSOR
SELECT JN_MCM_ID , JN_NAME , JN_VALUE FROM JOBNEEDEDTEMP WHERE ( JN_NAME='JN_AC_ZIPCODE' OR JN_NAME='JN_NAMENO_1' )
OPEN JOBNEEDEDTEMP_CURSOR_1 --開啟CURSOR
FETCH NEXT FROM JOBNEEDEDTEMP_CURSOR_1 INTO @JN_MCM_ID , @JN_NAME , @JN_VALUE --將CURSOR中的第一列資料 傳給宣告的變數
WHILE @@FETCH_STATUS = 0 --0 陳述式順利執行。-1 陳述式失敗,或資料列超出結果集。-2 擷取的資料列已遺漏。
BEGIN
UPDATE ComJobStatistic SET S_OPEN_JOBTYPE_NUMBER = @JN_MCM_ID WHERE DATEDIFF(D,S_DATE,GETDATE()) = 0
if @@ERROR >0 --若有錯誤產生
BEGIN
PRINT @JN_MCM_ID
END
FETCH NEXT FROM JOBNEEDEDTEMP_CURSOR_1 INTO @JN_MCM_ID , @JN_NAME , @JN_VALUE --將CURSOR中的下一筆資料 傳給宣告的變數
END
CLOSE JOBNEEDEDTEMP_CURSOR_1 --關閉CURSOR
DEALLOCATE JOBNEEDEDTEMP_CURSOR_1 --刪除CURSOR
select @ENDTIME = getdate() --給定回傳變數的值
select @PTYPE = 1 --給定回傳變數的值
GO
===========================================================================================
執行測試
DECLARE @R_STARTTIME DATETIME
DECLARE @R_ENDTIME DATETIME
DECLARE @R_PTYPE INT
EXEC GENMATCH @R_STARTTIME OUTPUT , @R_ENDTIME OUTPUT , @R_PTYPE OUTPUT
===========================================================================================
查看執行後的結果
SELECT @R_STARTTIME
SELECT @R_ENDTIME
SELECT @R_PTYPE
---------------------------------------------------------------------------------------
ALTER PROCEDURE [dbo].[InsertData](@Input_ID int , @result bit output) --注意欄位型態..
AS
DECLARE @C1 int --宣告變數
DECLARE @C2 VARCHAR(50)
DECLARE @C3 VARCHAR(50)
SELECT @result = 1
DECLARE CURSOR1 CURSOR FOR --宣告CURSOR 將值賦予CURSOR
SELECT ID,FileID,Photographer FROM Picture WHERE ID < @Input_ID --注意欄位型態..
OPEN CURSOR1 --開啟CURSOR
FETCH NEXT FROM CURSOR1 INTO @C1 , @C2 , @C3 --將CURSOR中的第一列資料 傳給宣告的變數
WHILE @@FETCH_STATUS = 0 --0 陳述式順利執行。-1 陳述式失敗,或資料列超出結果集。-2 擷取的資料列已遺漏。
BEGIN
INSERT INTO Table1(C1,C2,C3) VALUES(@C1,@C2,@C3)
INSERT INTO Table2(C1,C2,C3) VALUES(@C1,@C2,@C3)
if @@ERROR >0 --若有錯誤產生
BEGIN
SELECT @result = 0
END
FETCH NEXT FROM CURSOR1 INTO @C1 , @C2 , @C3 --將CURSOR中的下一筆資料 傳給宣告的變數
END
CLOSE CURSOR1 --關閉CURSOR
DEALLOCATE CURSOR1 --刪除CURSOR
===========================================================================================
執行測試
DECLARE @result bit
EXEC dbo.InsertData 4 , @result OUTPUT
SELECT @result
AS
DECLARE @JN_MCM_ID INT --宣告變數
DECLARE @JN_NAME VARCHAR(30)
DECLARE @JN_VALUE VARCHAR(30)
select @STARTTIME = getdate() --給定回傳變數的值
delete from JobNeededTemp --先刪除資料表中的資料
delete from MatchLogForDailyPaper
DECLARE JOBNEEDEDTEMP_CURSOR_1 CURSOR FOR --宣告CURSOR 將值賦予CURSOR
SELECT JN_MCM_ID , JN_NAME , JN_VALUE FROM JOBNEEDEDTEMP WHERE ( JN_NAME='JN_AC_ZIPCODE' OR JN_NAME='JN_NAMENO_1' )
OPEN JOBNEEDEDTEMP_CURSOR_1 --開啟CURSOR
FETCH NEXT FROM JOBNEEDEDTEMP_CURSOR_1 INTO @JN_MCM_ID , @JN_NAME , @JN_VALUE --將CURSOR中的第一列資料 傳給宣告的變數
WHILE @@FETCH_STATUS = 0 --0 陳述式順利執行。-1 陳述式失敗,或資料列超出結果集。-2 擷取的資料列已遺漏。
BEGIN
UPDATE ComJobStatistic SET S_OPEN_JOBTYPE_NUMBER = @JN_MCM_ID WHERE DATEDIFF(D,S_DATE,GETDATE()) = 0
if @@ERROR >0 --若有錯誤產生
BEGIN
PRINT @JN_MCM_ID
END
FETCH NEXT FROM JOBNEEDEDTEMP_CURSOR_1 INTO @JN_MCM_ID , @JN_NAME , @JN_VALUE --將CURSOR中的下一筆資料 傳給宣告的變數
END
CLOSE JOBNEEDEDTEMP_CURSOR_1 --關閉CURSOR
DEALLOCATE JOBNEEDEDTEMP_CURSOR_1 --刪除CURSOR
select @ENDTIME = getdate() --給定回傳變數的值
select @PTYPE = 1 --給定回傳變數的值
GO
===========================================================================================
執行測試
DECLARE @R_STARTTIME DATETIME
DECLARE @R_ENDTIME DATETIME
DECLARE @R_PTYPE INT
EXEC GENMATCH @R_STARTTIME OUTPUT , @R_ENDTIME OUTPUT , @R_PTYPE OUTPUT
===========================================================================================
查看執行後的結果
SELECT @R_STARTTIME
SELECT @R_ENDTIME
SELECT @R_PTYPE
---------------------------------------------------------------------------------------
ALTER PROCEDURE [dbo].[InsertData](@Input_ID int , @result bit output) --注意欄位型態..
AS
DECLARE @C1 int --宣告變數
DECLARE @C2 VARCHAR(50)
DECLARE @C3 VARCHAR(50)
SELECT @result = 1
DECLARE CURSOR1 CURSOR FOR --宣告CURSOR 將值賦予CURSOR
SELECT ID,FileID,Photographer FROM Picture WHERE ID < @Input_ID --注意欄位型態..
OPEN CURSOR1 --開啟CURSOR
FETCH NEXT FROM CURSOR1 INTO @C1 , @C2 , @C3 --將CURSOR中的第一列資料 傳給宣告的變數
WHILE @@FETCH_STATUS = 0 --0 陳述式順利執行。-1 陳述式失敗,或資料列超出結果集。-2 擷取的資料列已遺漏。
BEGIN
INSERT INTO Table1(C1,C2,C3) VALUES(@C1,@C2,@C3)
INSERT INTO Table2(C1,C2,C3) VALUES(@C1,@C2,@C3)
if @@ERROR >0 --若有錯誤產生
BEGIN
SELECT @result = 0
END
FETCH NEXT FROM CURSOR1 INTO @C1 , @C2 , @C3 --將CURSOR中的下一筆資料 傳給宣告的變數
END
CLOSE CURSOR1 --關閉CURSOR
DEALLOCATE CURSOR1 --刪除CURSOR
===========================================================================================
執行測試
DECLARE @result bit
EXEC dbo.InsertData 4 , @result OUTPUT
SELECT @result