日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > 数据库 >内容正文

数据库

SQL捕获异常

發(fā)布時(shí)間:2023/12/1 数据库 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL捕获异常 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
原文地址 http://technet.microsoft.com/zh-cn/office/ms179296%28v=sql.100%29 在 Transact-SQL 中使用 TRY...CATCH

Transact-SQL 代碼中的錯(cuò)誤可使用 TRY…CATCH 構(gòu)造處理,此功能類似于 Microsoft Visual C++ 和 Microsoft Visual C# 語(yǔ)言的異常處理功能。TRY…CATCH 構(gòu)造包括兩部分:一個(gè) TRY 塊和一個(gè) CATCH 塊。如果在 TRY 塊內(nèi)的 Transact-SQL 語(yǔ)句中檢測(cè)到錯(cuò)誤條件,則控制將被傳遞到 CATCH 塊(可在此塊中處理此錯(cuò)誤)。

CATCH 塊處理該異常錯(cuò)誤后,控制將被傳遞到 END CATCH 語(yǔ)句后面的第一個(gè) Transact-SQL 語(yǔ)句。如果 END CATCH 語(yǔ)句是存儲(chǔ)過(guò)程或觸發(fā)器中的最后一條語(yǔ)句,則控制將返回到調(diào)用該存儲(chǔ)過(guò)程或觸發(fā)器的代碼。將不執(zhí)行 TRY 塊中生成錯(cuò)誤的語(yǔ)句后面的 Transact-SQL 語(yǔ)句。

如果 TRY 塊中沒(méi)有錯(cuò)誤,控制將傳遞到關(guān)聯(lián)的 END CATCH 語(yǔ)句后緊跟的語(yǔ)句。如果 END CATCH 語(yǔ)句是存儲(chǔ)過(guò)程或觸發(fā)器中的最后一條語(yǔ)句,控制將傳遞到調(diào)用該存儲(chǔ)過(guò)程或觸發(fā)器的語(yǔ)句。

TRY 塊以 BEGIN TRY 語(yǔ)句開頭,以 END TRY 語(yǔ)句結(jié)尾。在 BEGIN TRY 和 END TRY 語(yǔ)句之間可以指定一個(gè)或多個(gè) Transact-SQL 語(yǔ)句。

CATCH 塊必須緊跟 TRY 塊。CATCH 塊以 BEGIN CATCH 語(yǔ)句開頭,以 END CATCH 語(yǔ)句結(jié)尾。在 Transact-SQL 中,每個(gè) TRY 塊僅與一個(gè) CATCH 塊相關(guān)聯(lián)。

使用 TRY...CATCH

使用 TRY...CATCH 構(gòu)造時(shí),請(qǐng)遵循下列規(guī)則和建議:

  • 每個(gè) TRY...CATCH 構(gòu)造都必須位于一個(gè)批處理、存儲(chǔ)過(guò)程或觸發(fā)器中。例如,不能將 TRY 塊放置在一個(gè)批處理中而將關(guān)聯(lián)的 CATCH 塊放置在另一個(gè)批處理中。下面的腳本將生成一個(gè)錯(cuò)誤:

    BEGIN TRYSELECT *FROM sys.messagesWHERE message_id = 21; END TRY GO -- The previous GO breaks the script into two batches, -- generating syntax errors. The script runs if this GO -- is removed. BEGIN CATCHSELECT ERROR_NUMBER() AS ErrorNumber; END CATCH; GO
  • CATCH 塊必須緊跟 TRY 塊。

  • TRY…CATCH 構(gòu)造可以是嵌套式的。這意味著可以將 TRY…CATCH 構(gòu)造放置在其他 TRY 塊和 CATCH 塊內(nèi)。當(dāng)嵌套的 TRY 塊中出現(xiàn)錯(cuò)誤時(shí),程序控制將傳遞到與嵌套的 TRY 塊關(guān)聯(lián)的 CATCH 塊。

  • 若要處理給定的 CATCH 塊中出現(xiàn)的錯(cuò)誤,請(qǐng)?jiān)谥付ǖ?CATCH 塊中編寫 TRY...CATCH 塊。

  • TRY...CATCH 塊不處理導(dǎo)致數(shù)據(jù)庫(kù)引擎關(guān)閉連接的嚴(yán)重性為 20 或更高的錯(cuò)誤。但是,只要連接不關(guān)閉,TRY...CATCH 就會(huì)處理嚴(yán)重性為 20 或更高的錯(cuò)誤。

  • 嚴(yán)重性為 10 或更低的錯(cuò)誤被視為警告或信息性消息,TRY...CATCH 塊不處理此類錯(cuò)誤。

  • 即使批處理位于 TRY...CATCH 構(gòu)造的作用域內(nèi),關(guān)注消息仍將終止該批處理。分布式事務(wù)失敗時(shí),Microsoft 分布式事務(wù)處理協(xié)調(diào)器 (MS DTC) 將發(fā)送關(guān)注消息。MS DTC 用于管理分布式事務(wù)。

    注意

    如 果在 TRY 塊的作用域內(nèi)執(zhí)行分布式事務(wù)且發(fā)生錯(cuò)誤,執(zhí)行將傳遞到關(guān)聯(lián)的 CATCH 塊。分布式事務(wù)進(jìn)入不可提交狀態(tài)。CATCH 塊中的執(zhí)行可能由管理分布式事務(wù)的 Microsoft 分布式事務(wù)處理協(xié)調(diào)器中斷。發(fā)生錯(cuò)誤時(shí),MS DTC 將異步通知參與分布式事務(wù)的所有服務(wù)器,并終止分布式事務(wù)中涉及的所有任務(wù)。此類通知以關(guān)注消息的形式發(fā)送(TRY...CATCH 構(gòu)造不處理此類通知),批處理將被終止。當(dāng)批處理完成運(yùn)行時(shí),數(shù)據(jù)庫(kù)引擎將回滾所有不可提交的活動(dòng)事務(wù)。如果事務(wù)進(jìn)入不可提交狀態(tài)時(shí)未發(fā)送錯(cuò)誤消息,則當(dāng) 批處理完成時(shí),將向客戶端應(yīng)用程序發(fā)送錯(cuò)誤消息,該消息指示檢測(cè)到或回滾了一個(gè)不可提交的事務(wù)。有關(guān)分布式事務(wù)的詳細(xì)信息,請(qǐng)參閱 分布式事務(wù)(數(shù)據(jù)庫(kù)引擎) 。

錯(cuò)誤函數(shù)

TRY...CATCH 使用下列錯(cuò)誤函數(shù)來(lái)捕獲錯(cuò)誤信息:

  • ERROR_NUMBER() 返回錯(cuò)誤號(hào)。

  • ERROR_MESSAGE() 返回錯(cuò)誤消息的完整文本。此文本包括為任何可替換參數(shù)(如長(zhǎng)度、對(duì)象名或時(shí)間)提供的值。

  • ERROR_SEVERITY() 返回錯(cuò)誤嚴(yán)重性。

  • ERROR_STATE() 返回錯(cuò)誤狀態(tài)號(hào)。

  • ERROR_LINE() 返回導(dǎo)致錯(cuò)誤的例程中的行號(hào)。

  • ERROR_PROCEDURE() 返回出現(xiàn)錯(cuò)誤的存儲(chǔ)過(guò)程或觸發(fā)器的名稱。

可 以使用這些函數(shù)從 TRY...CATCH 構(gòu)造的 CATCH 塊的作用域中的任何位置檢索錯(cuò)誤信息。如果在 CATCH 塊的作用域之外調(diào)用錯(cuò)誤函數(shù),錯(cuò)誤函數(shù)將返回 NULL。在 CATCH 塊中執(zhí)行存儲(chǔ)過(guò)程時(shí),可以在存儲(chǔ)過(guò)程中引用錯(cuò)誤函數(shù)并將其用于檢索錯(cuò)誤信息。如果這樣做,則不必在每個(gè) CATCH 塊中重復(fù)錯(cuò)誤處理代碼。在下面的代碼示例中,TRY 塊中的 SELECT 語(yǔ)句將生成一個(gè)被零除錯(cuò)誤。此錯(cuò)誤將由 CATCH 塊處理,它將使用存儲(chǔ)過(guò)程返回錯(cuò)誤信息。

USE AdventureWorks2008R2; GO-- Verify that the stored procedure does not exist. IF OBJECT_ID ('usp_GetErrorInfo', 'P') IS NOT NULLDROP PROCEDURE usp_GetErrorInfo; GO-- Create a procedure to retrieve error information. CREATE PROCEDURE usp_GetErrorInfo ASSELECT ERROR_NUMBER() AS ErrorNumber,ERROR_SEVERITY() AS ErrorSeverity,ERROR_STATE() as ErrorState,ERROR_PROCEDURE() as ErrorProcedure,ERROR_LINE() as ErrorLine,ERROR_MESSAGE() as ErrorMessage; GOBEGIN TRY-- Generate divide-by-zero error.SELECT 1/0; END TRY BEGIN CATCH-- Execute the error retrieval routine.EXECUTE usp_GetErrorInfo; END CATCH; GO

編譯錯(cuò)誤和語(yǔ)句級(jí)重新編譯錯(cuò)誤

對(duì)于與 TRY...CATCH 構(gòu)造在同一執(zhí)行級(jí)別發(fā)生的錯(cuò)誤,TRY...CATCH 將不處理以下兩類錯(cuò)誤:

  • 編譯錯(cuò)誤,例如阻止批處理執(zhí)行的語(yǔ)法錯(cuò)誤。

  • 語(yǔ)句級(jí)重新編譯過(guò)程中出現(xiàn)的錯(cuò)誤,例如由于名稱解析延遲而造成在編譯后出現(xiàn)對(duì)象名解析錯(cuò)誤。

當(dāng)包含 TRY...CATCH 構(gòu)造的批處理、存儲(chǔ)過(guò)程或觸發(fā)器生成其中一種錯(cuò)誤時(shí),TRY...CATCH 構(gòu)造將不處理這些錯(cuò)誤。這些錯(cuò)誤將返回到調(diào)用生成錯(cuò)誤的例程的應(yīng)用程序或批處理。例如,下面的代碼示例顯示導(dǎo)致語(yǔ)法錯(cuò)誤的 SELECT 語(yǔ)句。如果在 SQL Server Management Studio 查詢編輯器中執(zhí)行此代碼,則由于批處理無(wú)法編譯,執(zhí)行將不啟動(dòng)。錯(cuò)誤將返回到查詢編輯器,將不會(huì)由 TRY...CATCH 捕獲。

USE AdventureWorks2008R2; GOBEGIN TRY-- This PRINT statement will not run because the batch-- does not begin execution.PRINT N'Starting execution';-- This SELECT statement contains a syntax error that-- stops the batch from compiling successfully.SELECT ** FROM HumanResources.Employee; END TRY BEGIN CATCHSELECT ERROR_NUMBER() AS ErrorNumber,ERROR_MESSAGE() AS ErrorMessage; END CATCH; GO

與上述示例中的語(yǔ)法錯(cuò)誤不同,語(yǔ)句級(jí)重新編譯過(guò)程中發(fā)生的錯(cuò)誤不會(huì)阻礙批處理進(jìn)行編譯,但是一旦語(yǔ)句重新編譯失敗,它會(huì)立即終止批處理。例如,如果 批處理含有兩條語(yǔ)句并且第二條語(yǔ)句引用的表不存在,則延遲的名稱解析會(huì)使該批處理成功進(jìn)行編譯并開始執(zhí)行(無(wú)需將缺少的表綁定到查詢計(jì)劃),直到重新編譯 該語(yǔ)句為止。批處理到達(dá)引用缺失表的語(yǔ)句時(shí)將停止運(yùn)行,并返回一個(gè)錯(cuò)誤。在發(fā)生錯(cuò)誤的執(zhí)行級(jí)別,TRY...CATCH 構(gòu)造將不處理此類錯(cuò)誤。以下示例對(duì)此行為進(jìn)行了說(shuō)明。

USE AdventureWorks2008R2; GOBEGIN TRY-- This PRINT statement will run because the error-- occurs at the SELECT statement.PRINT N'Starting execution';-- This SELECT statement will generate an object name-- resolution error because the table does not exist.SELECT * FROM NonExistentTable; END TRY BEGIN CATCHSELECT ERROR_NUMBER() AS ErrorNumber,ERROR_MESSAGE() AS ErrorMessage; END CATCH; GO

通過(guò)執(zhí)行 TRY 塊內(nèi)單獨(dú)批處理中的錯(cuò)誤生成代碼,可以使用 TRY...CATCH 來(lái)處理編譯或語(yǔ)句級(jí)重新編譯過(guò)程中發(fā)生的錯(cuò)誤。例如,這可以通過(guò)在存儲(chǔ)過(guò)程中放置代碼或使用 sp_executesql 執(zhí)行動(dòng)態(tài) Transact-SQL 語(yǔ)句來(lái)實(shí)現(xiàn)。這使 TRY...CATCH 能夠在比錯(cuò)誤發(fā)生的執(zhí)行級(jí)別更高的執(zhí)行級(jí)別捕獲錯(cuò)誤。例如,下面的代碼顯示一個(gè)生成對(duì)象名解析錯(cuò)誤的存儲(chǔ)過(guò)程。包含 TRY...CATCH 構(gòu)造的批處理在比存儲(chǔ)過(guò)程更高的級(jí)別執(zhí)行,并捕獲在更低級(jí)別發(fā)生的錯(cuò)誤。

USE AdventureWorks2008R2; GO-- Verify that the stored procedure does not already exist. IF OBJECT_ID ('usp_MyError', 'P') IS NOT NULLDROP PROCEDURE usp_MyError; GOCREATE PROCEDURE usp_MyError AS-- This SELECT statement will generate-- an object name resolution error.SELECT * FROM NonExistentTable; GOBEGIN TRY-- Run the stored procedure.EXECUTE usp_MyError; END TRY BEGIN CATCHSELECT ERROR_NUMBER() AS ErrorNumber,ERROR_MESSAGE() AS ErrorMessage; END CATCH; GO

下面是結(jié)果集:

ErrorNumber ErrorMessage ----------- --------------------------------------- 208 Invalid object name 'NonExistentTable'.

有關(guān)詳細(xì)信息,請(qǐng)參閱 延遲名稱解析和編譯 以及 執(zhí)行計(jì)劃的緩存和重新使用 中的“重新編譯執(zhí)行計(jì)劃”一節(jié)。

不可提交的事務(wù)

在 TRY...CATCH 構(gòu)造中,事務(wù)可以進(jìn)入一種狀態(tài):事務(wù)保持打開但無(wú)法提交。事務(wù)無(wú)法執(zhí)行寫事務(wù)日志的任何操作,例如修改數(shù)據(jù)或嘗試回滾到保存點(diǎn)。但是,在此狀態(tài)下,事務(wù)獲 取的鎖將被維護(hù),并且連接也保持打開。發(fā)出 ROLLBACK 語(yǔ)句之前,或批處理結(jié)束并且數(shù)據(jù)庫(kù)引擎自動(dòng)回滾事務(wù)之前,不會(huì)逆轉(zhuǎn)事務(wù)效果。如果事務(wù)進(jìn)入不可提交狀態(tài)時(shí)未發(fā)送錯(cuò)誤信息,則當(dāng)批處理完成時(shí),將向客戶端應(yīng) 用程序發(fā)送錯(cuò)誤消息,該消息指示檢測(cè)到或回滾了一個(gè)不可提交的事務(wù)。

發(fā)生錯(cuò)誤時(shí),事務(wù)在 TRY 塊內(nèi)進(jìn)入無(wú)法提交狀態(tài),否則此錯(cuò)誤將終止該事務(wù)。例如,數(shù)據(jù)定義語(yǔ)言 (DDL) 語(yǔ)句(如 CREATE TABLE)中的大多數(shù)錯(cuò)誤或 SET XACT_ABORT 設(shè)置為 ON 時(shí)出現(xiàn)的大多數(shù)錯(cuò)誤都在 TRY 塊外終止事務(wù),而在 TRY 塊內(nèi)使事務(wù)無(wú)法提交。

CATCH 塊中的代碼可以通過(guò)使用 XACT_STATE 函數(shù)來(lái)測(cè)試事務(wù)的狀態(tài)。如果會(huì)話中包含無(wú)法提交的事務(wù),XACT_STATE 將返回 -1。如果 XACT_STATE 返回 -1,則 CATCH 塊將不能執(zhí)行寫日志的任何操作。下面的代碼示例生成 DDL 語(yǔ)句錯(cuò)誤,并使用 XACT_STATE 測(cè)試事務(wù)的狀態(tài),以便執(zhí)行最合適的操作。

USE AdventureWorks2008R2; GO-- Verify that the table does not exist. IF OBJECT_ID (N'my_books', N'U') IS NOT NULLDROP TABLE my_books; GO-- Create table my_books. CREATE TABLE my_books(Isbn int PRIMARY KEY,Title NVARCHAR(100)); GOBEGIN TRYBEGIN TRANSACTION;-- This statement will generate an error because the -- column author does not exist in the table.ALTER TABLE my_booksDROP COLUMN author;-- If the DDL statement succeeds, commit the transaction.COMMIT TRANSACTION; END TRY BEGIN CATCHSELECTERROR_NUMBER() as ErrorNumber,ERROR_MESSAGE() as ErrorMessage;-- Test XACT_STATE for 1 or -1.-- XACT_STATE = 0 means there is no transaction and-- a commit or rollback operation would generate an error.-- Test whether the transaction is uncommittable.IF (XACT_STATE()) = -1BEGINPRINTN'The transaction is in an uncommittable state. ' +'Rolling back transaction.'ROLLBACK TRANSACTION;END;-- Test whether the transaction is active and valid.IF (XACT_STATE()) = 1BEGINPRINTN'The transaction is committable. ' +'Committing transaction.'COMMIT TRANSACTION; END; END CATCH; GO

處理死鎖

TRY...CATCH 可用于處理死鎖。CATCH 塊可以捕獲 1205 死鎖犧牲品錯(cuò)誤,并且事務(wù)可以回滾,直至線程解鎖。有關(guān)死鎖的詳細(xì)信息,請(qǐng)參閱 死鎖 。

下面的示例顯示如何使用 TRY...CATCH 處理死鎖。第一部分創(chuàng)建用于說(shuō)明死鎖狀態(tài)的表和用于打印錯(cuò)誤信息的存儲(chǔ)過(guò)程。

USE AdventureWorks2008R2; GO-- Verify that the table does not exist. IF OBJECT_ID (N'my_sales',N'U') IS NOT NULLDROP TABLE my_sales; GO-- Create and populate the table for deadlock simulation. CREATE TABLE my_sales (Itemid INT PRIMARY KEY,Sales INT not null); GOINSERT my_sales (itemid, sales) VALUES (1, 1); INSERT my_sales (itemid, sales) VALUES (2, 1); GO-- Verify that the stored procedure for error printing -- does not exist. IF OBJECT_ID (N'usp_MyErrorLog',N'P') IS NOT NULLDROP PROCEDURE usp_MyErrorLog; GO-- Create a stored procedure for printing error information. CREATE PROCEDURE usp_MyErrorLog ASPRINT 'Error ' + CONVERT(VARCHAR(50), ERROR_NUMBER()) +', Severity ' + CONVERT(VARCHAR(5), ERROR_SEVERITY()) +', State ' + CONVERT(VARCHAR(5), ERROR_STATE()) + ', Line ' + CONVERT(VARCHAR(5), ERROR_LINE());PRINT ERROR_MESSAGE(); GO

下面的會(huì)話 1 和會(huì)話 2 的代碼腳本在兩個(gè)單獨(dú)的 SQL Server Management Studio 連接下同時(shí)運(yùn)行。兩個(gè)會(huì)話都嘗試更新表中的相同行。在第一次嘗試過(guò)程中,其中一個(gè)會(huì)話將成功完成更新操作,而另一個(gè)會(huì)話將被選擇為死鎖犧牲品。死鎖犧牲品 錯(cuò)誤將使執(zhí)行跳至 CATCH 塊,事務(wù)將進(jìn)入無(wú)法提交狀態(tài)。在 CATCH 塊中,死鎖犧牲品會(huì)回滾事務(wù)并重試更新此表,直到更新成功或達(dá)到了重試限制(以先發(fā)生者為準(zhǔn))。

會(huì)話 1

會(huì)話 2

USE AdventureWorks2008R2; GO-- Declare and set variable -- to track number of retries -- to try before exiting. DECLARE @retry INT; SET @retry = 5;-- Keep trying to update -- table if this task is -- selected as the deadlock -- victim. WHILE (@retry > 0) BEGINBEGIN TRYBEGIN TRANSACTION;UPDATE my_salesSET sales = sales + 1WHERE itemid = 1;WAITFOR DELAY '00:00:13';UPDATE my_salesSET sales = sales + 1WHERE itemid = 2;SET @retry = 0;COMMIT TRANSACTION;END TRYBEGIN CATCH -- Check error number.-- If deadlock victim error,-- then reduce retry count-- for next update retry. -- If some other error-- occurred, then exit-- retry WHILE loop.IF (ERROR_NUMBER() = 1205)SET @retry = @retry - 1;ELSESET @retry = -1;-- Print error information.EXECUTE usp_MyErrorLog;IF XACT_STATE() <> 0ROLLBACK TRANSACTION;END CATCH; END; -- End WHILE loop. GO USE AdventureWorks2008R2; GO-- Declare and set variable -- to track number of retries -- to try before exiting. DECLARE @retry INT; SET @retry = 5;--Keep trying to update -- table if this task is -- selected as the deadlock -- victim. WHILE (@retry > 0) BEGINBEGIN TRYBEGIN TRANSACTION;UPDATE my_salesSET sales = sales + 1WHERE itemid = 2;WAITFOR DELAY '00:00:07';UPDATE my_salesSET sales = sales + 1WHERE itemid = 1;SET @retry = 0;COMMIT TRANSACTION;END TRYBEGIN CATCH -- Check error number.-- If deadlock victim error,-- then reduce retry count-- for next update retry. -- If some other error-- occurred, then exit-- retry WHILE loop.IF (ERROR_NUMBER() = 1205)SET @retry = @retry - 1;ELSESET @retry = -1;-- Print error information.EXECUTE usp_MyErrorLog;IF XACT_STATE() <> 0ROLLBACK TRANSACTION;END CATCH; END; -- End WHILE loop. GO

使用 RAISERROR 的 TRY...CATCH

RAISERROR 可用在 TRY...CATCH 構(gòu)造的 TRY 或 CATCH 塊中影響錯(cuò)誤處理行為。

在 TRY 塊內(nèi)執(zhí)行的嚴(yán)重性為 11 至 19 的 RAISERROR 會(huì)使控制傳遞到關(guān)聯(lián)的 CATCH 塊。在 CATCH 塊內(nèi)執(zhí)行的嚴(yán)重性為 11 至 19 的 RAISERROR 將錯(cuò)誤返回到調(diào)用應(yīng)用程序或批處理。這樣,RAISERROR 可用于返回有關(guān)導(dǎo)致 CATCH 塊執(zhí)行的錯(cuò)誤的調(diào)用方信息。TRY...CATCH 錯(cuò)誤函數(shù)提供的錯(cuò)誤信息(包括原始錯(cuò)誤號(hào))可在 RAISERROR 消息中捕獲;但是,RAISERROR 的錯(cuò)誤號(hào)必須 >= 50000。

嚴(yán)重性為 10 或更低的 RAISERROR 在不調(diào)用 CATCH 塊的情況下將信息性消息返回到調(diào)用批處理或應(yīng)用程序。

嚴(yán)重性為 20 或更高的 RAISERROR 在不調(diào)用 CATCH 塊的情況下關(guān)閉數(shù)據(jù)庫(kù)連接。

下面的代碼示例顯示如何在 CATCH 塊內(nèi)使用 RAISERROR 將原始錯(cuò)誤信息返回到調(diào)用應(yīng)用程序或批處理。存儲(chǔ)過(guò)程 usp_GenerateErrorTRY 塊內(nèi)執(zhí)行 DELETE 語(yǔ)句,該語(yǔ)句生成違反約束錯(cuò)誤。此錯(cuò)誤使執(zhí)行傳遞到 usp_GenerateError 內(nèi)關(guān)聯(lián)的 CATCH 塊,存儲(chǔ)過(guò)程 usp_RethrowError 在此塊內(nèi)執(zhí)行以使用 RAISERROR 生成違反約束錯(cuò)誤。RAISERROR 生成的此錯(cuò)誤將返回到調(diào)用批處理(usp_GenerateError 在其中執(zhí)行)并使執(zhí)行傳遞到調(diào)用批處理中關(guān)聯(lián)的 CATCH 塊。

注意

RAISERROR 僅能生成狀態(tài)從 1 到 127 的錯(cuò)誤。由于數(shù)據(jù)庫(kù)引擎可能引發(fā)狀態(tài)為 0 的錯(cuò)誤,因此,建議您先檢查由 ERROR_STATE 返回的錯(cuò)誤狀態(tài),然后將它作為一個(gè)值傳遞給狀態(tài)參數(shù) RAISERROR。

USE AdventureWorks2008R2; GO-- Verify that stored procedure does not exist. IF OBJECT_ID (N'usp_RethrowError',N'P') IS NOT NULLDROP PROCEDURE usp_RethrowError; GO-- Create the stored procedure to generate an error using -- RAISERROR. The original error information is used to -- construct the msg_str for RAISERROR. CREATE PROCEDURE usp_RethrowError AS-- Return if there is no error information to retrieve.IF ERROR_NUMBER() IS NULLRETURN;DECLARE @ErrorMessage NVARCHAR(4000),@ErrorNumber INT,@ErrorSeverity INT,@ErrorState INT,@ErrorLine INT,@ErrorProcedure NVARCHAR(200);-- Assign variables to error-handling functions that -- capture information for RAISERROR.SELECT @ErrorNumber = ERROR_NUMBER(),@ErrorSeverity = ERROR_SEVERITY(),@ErrorState = ERROR_STATE(),@ErrorLine = ERROR_LINE(),@ErrorProcedure = ISNULL(ERROR_PROCEDURE(), '-');-- Build the message string that will contain original-- error information.SELECT @ErrorMessage = N'Error %d, Level %d, State %d, Procedure %s, Line %d, ' + 'Message: '+ ERROR_MESSAGE();-- Raise an error: msg_str parameter of RAISERROR will contain-- the original error information.RAISERROR (@ErrorMessage, @ErrorSeverity, 1, @ErrorNumber, -- parameter: original error number.@ErrorSeverity, -- parameter: original error severity.@ErrorState, -- parameter: original error state.@ErrorProcedure, -- parameter: original error procedure name.@ErrorLine -- parameter: original error line number.); GO-- Verify that stored procedure does not exist. IF OBJECT_ID (N'usp_GenerateError',N'P') IS NOT NULLDROP PROCEDURE usp_GenerateError; GO-- Create a stored procedure that generates a constraint violation -- error. The error is caught by the CATCH block where it is -- raised again by executing usp_RethrowError. CREATE PROCEDURE usp_GenerateError AS BEGIN TRY-- A FOREIGN KEY constraint exists on the table. This -- statement will generate a constraint violation error.DELETE FROM Production.ProductWHERE ProductID = 980;END TRYBEGIN CATCH-- Call the procedure to raise the original error.EXEC usp_RethrowError;END CATCH; GO-- In the following batch, an error occurs inside -- usp_GenerateError that invokes the CATCH block in -- usp_GenerateError. RAISERROR inside this CATCH block -- generates an error that invokes the outer CATCH -- block in the calling batch. BEGIN TRY -- outer TRY-- Call the procedure to generate an error.EXECUTE usp_GenerateError; END TRY BEGIN CATCH -- Outer CATCHSELECTERROR_NUMBER() as ErrorNumber,ERROR_MESSAGE() as ErrorMessage; END CATCH; GO

更改執(zhí)行流

轉(zhuǎn)載于:https://www.cnblogs.com/sxmny/archive/2012/11/01/2749286.html

總結(jié)

以上是生活随笔為你收集整理的SQL捕获异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

在线观看小视频 | 亚洲欧美色婷婷 | 精品在线免费观看 | 中文字幕免费观看视频 | 久草久草在线 | 亚洲日b视频| 国产精品麻| av在线免费观看黄 | 久久久激情网 | 日韩免费视频一区二区 | 国产日韩欧美视频 | 粉嫩av一区二区三区四区 | 激情综合中文娱乐网 | 欧美日韩伦理在线 | 九九免费在线观看视频 | 日韩精品视频在线免费观看 | 免费av网站在线看 | 欧美另类视频 | 在线观看完整版 | 成人在线视频观看 | 狠狠干天天色 | 手机看片国产日韩 | 99热在线观看免费 | 手机av在线网站 | 亚洲国产成人久久综合 | 国产免费区 | 免费av观看| av中文字幕剧情 | 亚洲精品视频网址 | 狠狠色香婷婷久久亚洲精品 | 九九热.com| 色噜噜在线观看 | 四虎成人精品永久免费av | 日本久久中文 | 中文字幕丝袜制服 | 激情五月五月婷婷 | 日韩在线观看第一页 | 天天色天天艹 | 精品国产乱码久久久久久久 | 亚洲精品免费播放 | 国产特级毛片aaaaaa | 在线视频亚洲 | 在线天堂8√ | 日韩欧美精品免费 | 99这里有精品 | 国产一二三区av | 日韩电影一区二区三区在线观看 | 黄色网www | www激情网| 亚洲激情一区二区三区 | .国产精品成人自产拍在线观看6 | 日日夜夜精品视频 | 久久午夜影院 | 激情久久婷婷 | 色婷婷综合久久久久中文字幕1 | 亚洲第二色 | 免费av试看| 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 成人一区电影 | 超碰在线98 | 免费看污在线观看 | 最近更新中文字幕 | 99精品国产99久久久久久97 | 国产精品久久久久影视 | 91最新在线 | 久久精品欧美一区 | 又黄又爽的视频在线观看网站 | 一级黄色片在线免费看 | 国产精品视频99 | 国产成人久久精品亚洲 | 欧美一区视频 | 午夜 免费 | 亚洲精品视频在线观看免费视频 | 国产五十路毛片 | 久草在线观看资源 | 91亚洲影院| 日韩精品一区二区三区电影 | 在线观看av中文字幕 | 久久不见久久见免费影院 | 亚洲视频六区 | 在线高清一区 | 永久中文字幕 | .国产精品成人自产拍在线观看6 | 欧女人精69xxxxxx | 麻豆视频国产精品 | 激情婷婷久久 | 久久色视频 | 欧美a影视| 99精品欧美一区二区蜜桃免费 | 久久天天综合网 | 天天射夜夜爽 | 天天狠狠 | 久久99九九99精品 | 亚洲精品白浆高清久久久久久 | 在线观看的av网站 | 日韩一区二区三区免费视频 | 99久久国产免费,99久久国产免费大片 | 久久理论片 | 永久中文字幕 | 国产精品成久久久久三级 | 欧美日韩国产一区二区在线观看 | 亚洲免费国产视频 | 在线观看你懂的网址 | 五月婷婷在线观看 | 九九九热| 亚洲精品黄色 | 天天干天天操天天射 | 国产小视频国产精品 | 国产成人在线看 | 欧美成年人在线观看 | 久久久久久99精品 | 国产精品久久久久国产精品日日 | 精品综合久久 | 人人超碰在线 | 中国老女人日b | 在线免费国产 | 欧产日产国产69 | 97视频在线观看视频免费视频 | 一级成人网 | 国产视频精选在线 | 高清不卡毛片 | 激情www | 成人资源站| 欧美一级久久 | 狠狠躁夜夜av | 国产你懂的在线 | 狠狠色网 | 日韩免费在线一区 | 免费在线观看一级片 | 99精品视频免费看 | 欧美日韩二三区 | 97在线观看免费视频 | 天天操天天玩 | 日本在线观看一区 | 日韩一二三区不卡 | 天堂网一区二区三区 | 五月天精品视频 | 国产黄色一级片在线 | 亚洲午夜久久久久久久久电影网 | 国产 日韩 欧美 中文 在线播放 | 在线婷婷 | 婷婷深爱| 欧美国产日韩一区二区 | 久久神马影院 | 免费成人在线网站 | 日本福利视频在线 | 在线探花| 最新91在线视频 | 国产视频一区二区在线观看 | 国产91综合一区在线观看 | 久久久午夜精品理论片中文字幕 | av在线免费观看网站 | 亚洲视频精品在线 | 91成人在线视频 | 超碰人人做 | 亚洲一二视频 | 日韩欧美91 | 欧美精品中文在线免费观看 | 欧美日韩在线看 | 国产日韩中文字幕在线 | 一区二区欧美激情 | 日韩三级视频在线看 | 在线观看小视频 | 在线免费中文字幕 | 免费观看十分钟 | 91在线精品秘密一区二区 | 国产午夜麻豆影院在线观看 | 日韩精品中文字幕在线 | 亚洲另类人人澡 | 久av在线 | 在线日韩精品视频 | 日韩1级片 | 国内精品在线一区 | 国产精品美女免费 | 精品毛片一区二区免费看 | 我要看黄色一级片 | 久久爽久久爽久久av东京爽 | 色视频 在线 | 91cn国产在线 | 亚洲免费a| 欧美日韩xxxxx | 久久综合五月 | 欧美视频99| 成人视屏免费看 | 国产精品欧美 | 国产视频第二页 | 国产精品久久久久久久久久久免费看 | 成年人国产在线观看 | 亚洲黄色在线观看 | 国产黄色片免费看 | 婷婷五综合 | 在线 国产一区 | 色婷婷av国产精品 | 国产精品完整版 | 91精品国产91久久久久久三级 | 国产精品午夜av | 国产精品福利无圣光在线一区 | 91久久人澡人人添人人爽欧美 | 色视频网站免费观看 | 99国产精品视频免费观看一公开 | 99r国产精品 | 国产精品手机看片 | 国产中的精品av小宝探花 | 99国产在线视频 | 国产精品免费在线播放 | 在线观看视频一区二区 | 午夜91视频 | 高潮久久久久久 | 91九色视频国产 | 特级黄色片免费看 | 亚洲色图 校园春色 | 99视频精品 | 96精品高清视频在线观看软件特色 | 久久6精品 | 国产一区影院 | 香蕉视频在线播放 | 91亚洲精品久久久 | 久久中文欧美 | 亚洲国产精品久久 | 天天射天天| 激情综合啪啪 | 亚洲精品网址在线观看 | www.成人sex | 亚洲午夜久久久综合37日本 | 久久久久久久国产精品视频 | 男女啪啪网站 | 黄色av影视 | 久久9999久久免费精品国产 | 色偷偷男人的天堂av | www.天天操.com | 国产 视频 高清 免费 | 国产亚洲va综合人人澡精品 | 久久久这里有精品 | 久久综合色一综合色88 | 99精品欧美一区二区 | 国产日韩精品一区二区在线观看播放 | 一区二区不卡 | 亚洲精品乱码久久久久久高潮 | 亚洲视频免费在线看 | 亚洲精品久久久蜜桃 | 婷婷福利影院 | 三级动态视频在线观看 | 色综合久久88色综合天天人守婷 | a级国产乱理论片在线观看 特级毛片在线观看 | 高清日韩一区二区 | 波多野结衣精品视频 | 中文字幕在线影院 | www.天天干 | 久热爱 | 黄网站色视频 | 又黄又刺激又爽的视频 | 久久久久视| 在线观看的av | 在线国产精品一区 | 国产精品k频道 | 国产护士hd高朝护士1 | 超碰com| 中文在线字幕免费观看 | 久久久久久久久久久久久国产精品 | 日日操天天操狠狠操 | 亚洲精品女 | 欧美色就是色 | 日韩在线国产精品 | 国产一级片免费观看 | 99re热精品视频 | 精品国产精品一区二区夜夜嗨 | 婷婷色站 | 国产又粗又猛又爽又黄的视频免费 | 精品av在线播放 | 91大神dom调教在线观看 | 日韩视频二区 | 99免在线观看免费视频高清 | 亚洲成人一二三 | 国产精品av久久久久久无 | 深爱综合网| 久久国产欧美日韩 | 99热99热| 日韩视频精品在线 | 99视频在线免费 | 国产一区二区三区高清播放 | 欧美日韩高清在线 | 亚洲精品视频中文字幕 | 久草视频免费观 | 伊人婷婷久久 | 黄色毛片视频免费观看中文 | 亚州精品视频 | 日韩视频在线不卡 | 亚洲精品视频在线免费播放 | 91av免费在线观看 | 日韩精品一区在线观看 | 日日操操 | 久久久久久久久久久久久久电影 | 丁香资源影视免费观看 | 久久99久久99精品免视看婷婷 | 国产精品永久久久久久久久久 | 99久久精品国产毛片 | 欧美午夜精品久久久久久浪潮 | 亚洲欧美视频 | 伊人中文网 | 色综合在 | 日韩在线不卡视频 | 激情网在线视频 | 91人人干| 亚洲国产午夜视频 | 操操综合网| 超碰av在线免费观看 | 亚洲九九九在线观看 | 亚洲精品中文字幕在线观看 | 九色激情网 | 国产精品一区二区免费视频 | 美女av免费看 | 久久久久久久久电影 | www.com黄色| 国产1区2区3区精品美女 | 精品国产乱子伦一区二区 | 五月黄色 | 国产黄免费在线观看 | 久久9视频 | 2017狠狠干 | 国产精品久久久久久吹潮天美传媒 | 偷拍精偷拍精品欧洲亚洲网站 | 91在线视频免费91 | 亚洲在线免费视频 | 81国产精品久久久久久久久久 | 国产呻吟在线 | 久久久久久久国产精品视频 | 亚洲欧美视频在线播放 | 麻豆成人小视频 | 久久露脸国产精品 | 国产一级电影 | 成年人黄色免费网站 | 高清免费在线视频 | 91人人揉日日捏人人看 | 久久久久久久久久久久久久免费看 | 亚洲成av人片 | 天天曰| 国产精品综合久久久 | 久久99国产精品 | 2018好看的中文在线观看 | 国产日本高清 | 欧美久久久久久久久久久久 | 久久精品亚洲 | 国产中文在线字幕 | 欧美国产日韩一区二区 | 亚洲激情电影在线 | 不卡的av中文字幕 | 看片黄网站| 久久综合狠狠综合久久狠狠色综合 | 99国产精品一区二区 | 国产剧情久久 | 成人啪啪18免费游戏链接 | 亚洲午夜久久久久 | 丁香六月久久综合狠狠色 | 中文字幕在线观看第一区 | 国产黄色成人 | 深爱激情综合 | 国产精品视频免费在线观看 | 久久久久久久久久久免费 | 国产.精品.日韩.另类.中文.在线.播放 | 在线视频1卡二卡三卡 | 久久精品国产第一区二区三区 | 色婷婷激婷婷情综天天 | 91免费在线 | 国语久久 | 精品久久久久久国产偷窥 | 免费av观看网站 | 夜夜骑日日 | 亚洲精品短视频 | 97超视频在线观看 | 91在线视频 | 91精品在线免费 | 欧美日韩国产成人 | 亚洲女同videos| 黄污在线看 | 亚洲精品88欧美一区二区 | 国产精品福利一区 | 爱色av.com| 男女拍拍免费视频 | 夜夜爽天天爽 | 色姑娘综合网 | 国产少妇在线观看 | 日本中文字幕观看 | 国产欧美日韩精品一区二区免费 | 日韩在线观看一区二区三区 | 99视频播放| 午夜精品久久久久久久久久 | 五月婷婷综合网 | 99久久久国产精品美女 | 久久97精品| 2019天天干天天色 | 国产在线观看国语版免费 | 国产精品久久久久永久免费看 | www.婷婷com| 黄网站污| 亚洲免费精品一区二区 | 操操操日日日干干干 | 国产精品激情偷乱一区二区∴ | 色综合久久久久综合体桃花网 | 欧美少妇bbwhd | 69av免费视频 | 黄av免费在线观看 | www.91av在线 | 91麻豆精品国产91久久久久久久久 | 麻豆免费在线视频 | 欧美亚洲一级片 | 91传媒在线 | 天天操夜夜干 | 99r精品视频在线观看 | 亚洲国产精品一区二区久久hs | 日韩a级免费视频 | 国产精品成人av电影 | 国产精品大片免费观看 | 国产在线理论片 | 日韩欧美第二页 | 日韩精品视频免费看 | 国产涩涩网站 | 国产精品久久久av | 亚洲综合色av | 成人午夜剧场在线观看 | 91精品国产乱码在线观看 | 成人免费影院 | av线上看 | 久久国产欧美日韩 | 精精国产xxxx视频在线播放 | 亚洲美女视频在线 | 欧美性生活大片 | 丁香婷婷激情国产高清秒播 | 国色综合| 成人网444ppp| 国产在线视频一区二区 | 亚洲黄a | 九九爱免费视频在线观看 | 天天草天天操 | 免费黄色av.| 日韩一区在线播放 | 999久久| 一区二区三区中文字幕在线 | 伊人手机在线 | 在线电影播放 | 国产精品久久久久久吹潮天美传媒 | 青青河边草免费观看 | 国产三级香港三韩国三级 | 国产一级性生活视频 | 欧美性久久久 | 日韩天天综合 | 中文一二区 | 国产成人精品免高潮在线观看 | 久久久久久久久久久成人 | 亚洲国产69 | 久久免费视频这里只有精品 | 最近中文字幕国语免费av | 五月天激情电影 | 日韩欧美高清一区二区三区 | 综合激情| 成年人国产在线观看 | 超级碰碰碰免费视频 | 69国产在线观看 | 丁香婷五月 | 精品国模一区二区三区 | 91秒拍国产福利一区 | japanesefreesex中国少妇 | 中文字幕成人 | 成人高清在线 | 亚洲无吗天堂 | 91精品啪啪| 午夜精品久久久久久久99水蜜桃 | 91中文字幕一区 | 久草在线免费新视频 | 国产精品久久精品 | 精品久久久久国产免费第一页 | 在线观看免费观看在线91 | 日韩电影在线观看一区二区 | 久久免费看毛片 | 欧美成人黄色片 | 久草网在线视频 | 天天干天天天天 | 久久视频在线观看 | 麻豆视频国产在线观看 | 免费在线观看av的网站 | 国产色综合天天综合网 | 免费久久99精品国产婷婷六月 | 深夜免费福利 | 91色在线观看视频 | 国产精品美乳一区二区免费 | 狠狠操狠狠干天天操 | 久久久久久国产精品免费 | 天天干夜夜想 | 亚洲视频电影在线 | 免费91麻豆精品国产自产在线观看 | 免费观看一级视频 | 99热在线精品观看 | 一区二区视频在线看 | 69av视频在线观看 | 日韩精品欧美专区 | 成年人免费在线观看网站 | 婷婷国产在线 | 涩五月婷婷 | 久久久久久久久久福利 | 亚洲高清视频在线 | 日韩av快播电影网 | 91久久黄色 | 天天操天天射天天爽 | 亚洲国产丝袜在线观看 | 伊人久久影视 | 99精品视频在线免费观看 | 日本高清中文字幕有码在线 | 手机在线中文字幕 | 日韩视频一区二区在线观看 | 韩日精品在线 | 国产中文在线观看 | 97精品视频在线 | 亚洲成人免费在线观看 | 色a资源在线 | 很黄很污的视频网站 | 六月丁香婷 | 国产黄色精品 | 欧美 另类 交| 黄色在线免费观看网站 | 在线欧美日韩 | 最新国产精品拍自在线播放 | 亚洲精品在线资源 | 成人av免费在线看 | 久久精品99 | 欧美一二在线 | 精品99视频 | 人人搞人人干 | av网站有哪些 | 久久不卡国产精品一区二区 | 综合网婷婷| 成人精品影视 | 在线日韩精品视频 | 久草视频免费看 | 999久久a精品合区久久久 | 91精品视频在线观看免费 | 免费观看国产成人 | 999热线在线观看 | 国产精品不卡在线播放 | 国产精品久久久久久久久久三级 | 在线观看成人 | 亚洲一级电影在线观看 | 欧美一区二区三区免费观看 | 中文资源在线播放 | 成人一级影视 | 欧美一二区在线 | 久久免费国产视频 | 国产小视频在线观看 | 中文字幕在线播放日韩 | 国产韩国日本高清视频 | 色七七亚洲影院 | 久久久久亚洲精品国产 | 成年人视频在线免费观看 | www.国产在线 | 久久情爱 | 久久久久久伊人 | a色网站 | 99精品久久精品一区二区 | 91中文在线 | 国产精品99久久久久久久久久久久 | 2020天天干夜夜爽 | 日韩电影一区二区在线 | 在线成人性视频 | 亚洲欧洲成人精品av97 | 在线看片日韩 | 97超碰人人澡人人爱学生 | 最近中文字幕国语免费av | 天天做天天爱夜夜爽 | 麻豆视传媒官网免费观看 | 亚洲国产精品电影 | 欧美va天堂va视频va在线 | 欧美日韩在线观看不卡 | 久久国产精品二国产精品中国洋人 | 最新av在线播放 | 国产手机在线播放 | 丁香花在线观看免费完整版视频 | 国产尤物在线 | 亚洲精品乱码久久久久久蜜桃不爽 | 91亚洲精品视频 | 国产福利91精品一区 | 欧美午夜性 | 亚洲波多野结衣 | 欧美一区二区三区在线看 | 91伊人影院| 亚洲精品mv在线观看 | 天堂在线v | www激情久久 | 欧美性久久久久久 | 欧美午夜理伦三级在线观看 | 亚洲国产中文字幕 | 亚洲国产精品视频 | 黄色动态图xx | 992tv又爽又黄的免费视频 | 最近免费在线观看 | 亚洲视频综合在线 | 亚洲欧美在线观看视频 | 亚洲精品日韩一区二区电影 | 99精品区 | 国产精品门事件 | 91亚洲国产 | 亚洲激情在线视频 | 国产精品va最新国产精品视频 | 亚洲黄在线观看 | 最近免费中文字幕mv在线视频3 | 综合中文字幕 | 久久综合欧美精品亚洲一区 | 精品视频www | 四虎成人免费观看 | 免费日韩在线 | 99热99热 | 天天艹日日干 | 天天翘av | 亚洲婷婷在线视频 | 五月天国产精品 | 亚洲第一香蕉视频 | 97超碰国产精品 | 久久精品99国产国产精 | 国产精品免费久久 | 黄色三级在线看 | 精品视频久久 | 亚洲黄色成人网 | av电影一区二区 | 在线视频日韩 | 热久久影视 | 蜜桃av久久久亚洲精品 | 午夜久久影院 | 日韩欧美精选 | 天天爽夜夜爽精品视频婷婷 | 国内精品久久久久久久久久久久 | 精品二区久久 | 成人免费 在线播放 | 91精品国产综合久久久久久久 | 久久久久亚洲国产 | 黄色av网站在线免费观看 | 欧美日韩国产伦理 | 超碰免费久久 | 久久久久久国产一区二区三区 | 91探花国产综合在线精品 | 激情中文在线 | 丁香婷婷深情五月亚洲 | 免费高清无人区完整版 | 婷婷综合成人 | 国产精品1区2区在线观看 | 国产亚洲精品久久 | 久章草在线 | 狠狠色丁香久久婷婷综合丁香 | 国产精品女同一区二区三区久久夜 | 香蕉影视在线观看 | 久久婷婷一区二区三区 | 久久精品视频日本 | 激情五月综合网 | 日日夜夜国产 | 国产精品九九久久99视频 | 国产精品美女久久久久aⅴ 干干夜夜 | 丁香网五月天 | 日韩精品免费在线观看视频 | 亚洲最新合集 | 狠狠干狠狠色 | 五月天国产精品 | 狠狠综合网 | 亚洲春色成人 | 69国产盗摄一区二区三区五区 | 91精品国产99久久久久久久 | 国产裸体视频网站 | 久久黄色小说 | 亚洲美女精品 | 亚洲天堂在线观看完整版 | 美州a亚洲一视本频v色道 | 久久女教师 | 亚洲japanese制服美女 | 亚洲成a人片在线观看网站口工 | 久久国产欧美日韩精品 | 国产精品久久久av久久久 | 久久久国产精品亚洲一区 | 一区二区三区影院 | 久久综合久久综合这里只有精品 | 精品在线观看免费 | av激情五月| aa一级片 | 黄色av一区 | 国产成人一二三 | 欧美天天射 | 日韩资源在线播放 | 天堂va欧美va亚洲va老司机 | 国产自在线观看 | 欧美资源在线观看 | 久久精品一区 | av天天干 | 国产高清av免费在线观看 | 午夜久久 | 探花视频在线观看免费 | 亚洲无线视频 | 久草在线最新视频 | 久草国产视频 | 精品久久久久久久久中文字幕 | 久久黄色精品视频 | 五月天婷婷免费视频 | 五月花激情 | 亚洲精品大全 | 中文字幕在线字幕中文 | 亚洲精品欧美视频 | 国产精品美女久久久久久久久 | 首页中文字幕 | 欧美成人69av| 91色网址 | 麻豆影视网 | 国产精品久久久一区二区三区网站 | 久久成人免费电影 | 日韩在线观看视频在线 | 国产精品 中文字幕 亚洲 欧美 | 国产精品一区一区三区 | 中文字幕a∨在线乱码免费看 | 九九日韩 | 久久精品香蕉视频 | 久久婷婷精品 | 欧美另类成人 | 精品国产黄色片 | 五月天国产 | 日本成人免费在线观看 | 亚洲高清国产视频 | av在线播放快速免费阴 | 美女在线国产 | 涩涩伊人 | 99理论片| 成人免费观看a | 亚洲免费视频观看 | 久久精品79国产精品 | 91日本在线播放 | 国产成人精品久久二区二区 | 亚洲激情综合网 | 91免费在线视频 | 久久激情日本aⅴ | 欧美黑吊大战白妞欧美 | 91精品国产91热久久久做人人 | 国产中文字幕网 | 人人插人人澡 | 夜夜爽天天爽 | 亚洲乱码在线 | 日韩欧美在线视频一区二区三区 | av在线播放中文字幕 | 国产二区av | 97在线资源 | 高清视频一区 | 51久久成人国产精品麻豆 | 91成熟丰满女人少妇 | 日日干影院 | 免费在线观看亚洲视频 | 久久大片 | 在线观看免费黄色 | 欧美日韩精品在线观看 | 99热在线国产| 天天舔天天射天天操 | www.天天射 | 狠狠狠狠干 | 欧美精品乱码久久久久久 | 蜜臀av夜夜澡人人爽人人桃色 | 一区二区三区视频网站 | 国产免费观看久久黄 | 亚洲天天在线 | 国产999精品久久久影片官网 | 欧美 亚洲 另类 激情 另类 | 中国精品一区二区 | 综合久久久久久久 | 日韩大陆欧美高清视频区 | 97碰在线视频 | 国产一区二区高清视频 | 99亚洲国产| 日本久久片 | 婷婷国产v亚洲v欧美久久 | 欧美性久久久久久 | 久久久国产一区二区 | 97操操操 | 91chinesexxx | 波多野结衣小视频 | 国产精品中文 | 免费av成人在线 | 91成人免费看片 | 国产黄色网 | 草久电影| a久久免费视频 | 亚洲综合视频在线 | 日韩资源在线播放 | 夜夜躁狠狠躁日日躁视频黑人 | 狠狠插狠狠操 | 久久精品国产免费 | 久久精品99国产 | 在线免费观看国产视频 | 欧美成a人片在线观看久 | 久久免费视频99 | 蜜臀aⅴ国产精品久久久国产 | 中文字幕在线观看一区二区三区 | 久久久91精品国产一区二区精品 | 欧美aa在线观看 | 国产精品免费久久久久久 | 91黄色免费看| 激情丁香综合五月 | 黄色avwww| 日韩中文字幕免费视频 | 欧美日韩免费观看一区=区三区 | 国产又粗又硬又长又爽的视频 | 亚洲激情综合 | 精品国精品自拍自在线 | 久久久久久福利 | 日本特黄一级片 | 又黄又爽的免费高潮视频 | 国产欧美综合视频 | 麻豆视频免费在线观看 | 亚洲成aⅴ人在线观看 | a黄色一级| 9色在线视频 | 中文字幕丰满人伦在线 | 久久国产精品99久久人人澡 | 99久久精品国产一区 | 中文字幕亚洲在线观看 | 嫩草av在线| 97成人在线视频 | 日韩欧美一区视频 | 久久这里有| 国产一区在线观看免费 | 日韩欧美一区二区三区视频 | 欧美性天天 | 热久久精品在线 | 日本中文字幕在线视频 | 在线成人观看 | 这里只有精彩视频 | 精品国产aⅴ一区二区三区 在线直播av | 人人玩人人爽 | 久久综合色一综合色88 | 日本精品一二区 | 中文字幕av电影下载 | 啪啪免费试看 | 久久久 精品 | 天天色天天搞 | 中文字幕有码在线 | 亚洲一区在线看 | 久草免费在线视频 | 久久久久久综合 | 777奇米四色 | 免费看黄色小说的网站 | 久久精品国产免费看久久精品 | 91高清视频免费 | 亚洲成年人在线播放 | 美女国内精品自产拍在线播放 | 中文字幕在线人 | 在线只有精品 | 国产精品免费看久久久8精臀av | 91成人精品一区在线播放69 | 日韩一区二区三区免费电影 | 99热在线观看 | 亚洲精品美女久久久 | 国产高清精品在线观看 | 欧美精品一区二区三区四区在线 | 午夜黄色影院 | 91爱爱电影 | 国产婷婷在线观看 | 国产亚洲在| 亚洲精品18日本一区app | 91爱爱电影 | 手机成人av在线 | 又粗又长又大又爽又黄少妇毛片 | 色播五月激情五月 | 在线国产日本 | 一区二区丝袜 | 国产二区电影 | 日韩精品第一区 | 久久人人爽视频 | 久久99九九99精品 | 一区中文字幕电影 | 免费a v在线 | 国产一区二区三区四区大秀 | 国产精品一区二区果冻传媒 | 337p日本大胆噜噜噜噜 | 狠狠操.com| 国产精品每日更新 | 色大片免费看 | 香蕉视频免费在线播放 | 99精品国产亚洲 | 激情开心 | 国产 视频 久久 | 日韩影视在线 | 久久热首页 | 久草在线最新 | 欧美另类视频 | 日日干日日 | 最新av电影网站 | 久草免费在线观看视频 | 性色大片在线观看 | 欧美另类交人妖 | 在线色亚洲 | 日韩精品视频免费专区在线播放 | 在线黄色免费 | 精品国产一区二区三区蜜臀 | 久久精品理论 | 国产剧情久久 | 99视频免费在线观看 | 日韩欧美高清一区二区 | 日韩二区三区在线观看 | 97色在线观看 | 香蕉91视频 | 中文字幕在线字幕中文 | 亚洲免费不卡 | 色噜噜日韩精品欧美一区二区 | 在线播放日韩av | 毛片网站观看 | 在线视频日韩精品 | av九九| 婷婷四房综合激情五月 | 久久久免费视频播放 | 手机av网站 | 日本精品一区二区三区在线播放视频 | 香蕉91视频 | 日韩精品免费一线在线观看 | 色综合久久久久久久久五月 | 超碰97网站 | 成 人 黄 色 片 在线播放 | 日本黄色片一区二区 | av解说在线观看 | 色a资源在线 | 狠狠狠的干 | 少妇bbbb搡bbbb桶| 中文字幕中文字幕在线一区 | 久久久精品高清 | 国产成人av免费在线观看 | 日本中文字幕电影在线免费观看 | 91日韩免费 | 天天综合网入口 | 91av视频观看| 一级电影免费在线观看 | 在线99 | 亚洲高清视频在线观看免费 | 日韩中文久久 | 婷婷久久综合九色综合 | 日韩视频一区二区在线观看 | 在线观看亚洲成人 | 中文字幕色婷婷在线视频 | 99精品成人| av中文电影 | 日韩动漫免费观看高清完整版在线观看 | 天天干天天在线 | 亚洲欧美日韩精品一区二区 | 天天艹天天 | 欧美一级黄大片 | 中文字幕丝袜一区二区 | 午夜影院三级 | 婷婷久久网站 | 国产三级精品三级在线观看 | 成人a级免费视频 | 黄色亚洲免费 | 久久综合九色欧美综合狠狠 | 一区二区精品在线 | 亚洲综合视频在线 | 成人av电影在线播放 | 亚洲精品777 | 欧美黄色成人 | 特级毛片网 | 午夜精品一区二区三区可下载 | 99国产精品一区二区 | 亚洲精品自拍 | 国产高清在线 | 在线一区二区三区 | 天天爽夜夜爽精品视频婷婷 | 中文亚洲欧美日韩 | 婷婷色狠狠| 黄色毛片大全 | 日韩av免费观看网站 | 免费视频区 | 国产精品美女久久久久久久网站 | 91秒拍国产福利一区 | 国产精品久久久久久五月尺 | 精品网站999www| 亚洲精品久久久久999中文字幕 | 激情大尺度视频 | 亚洲欧美日本一区二区三区 | 久久手机精品视频 | 麻豆一区二区 | 亚洲免费av在线播放 | 99免费观看视频 | 久久久久区 | 亚洲精品视频一 | 国产原创av在线 | 男女视频国产 | 久久精品亚洲 | 日韩欧美在线综合网 | 亚洲精品视频网站在线观看 | 最新成人av| 精品国产一区二区三区蜜臀 | 欧美大香线蕉线伊人久久 | 色婷久久 | 国产一区二区在线影院 | 在线观看国产区 | 国产精品99久久久久的智能播放 | 亚洲精品动漫成人3d无尽在线 | 天天夜操 | 在线观看日韩国产 | 在线电影日韩 | 国产免码va在线观看免费 | 亚洲视屏| 亚洲国产成人精品久久 | 成人av播放 | 国产一区二区在线免费播放 |