<optgroup id="r9hwm"></optgroup><nav id="r9hwm"><label id="r9hwm"></label></nav>

    <tt id="r9hwm"><tr id="r9hwm"></tr></tt>
  1. 
    
  2. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

  3. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

        1. <listing id="r9hwm"></listing>
          <delect id="r9hwm"></delect>
          <optgroup id="r9hwm"><samp id="r9hwm"><ol id="r9hwm"></ol></samp></optgroup>

          sql語句執行存儲過程

          存儲過程怎么查看執行sql語句

          MSSQL為我們提供了兩種動態執行SQL語句的命令,分別是EXEC和 sp_executesql;通常,sp_executesql則更具有優勢,它提供了輸入輸出接口,而EXEC沒有。

          還有一個最大的好處就是利用 sp_executesql,能夠重用執行計劃,這就大大提供了執行性能,還可以編寫更安全的代碼。EXEC在某些情況下會更靈活。

          除非您有令人信服的理 由使用EXEC,否側盡量使用sp_*的使用 EXEC命令有兩種用法,一種是執行一個存儲過程,另一種是執行一個動態的批處理。以下所講的都是第二種用法。

          下面先使用EXEC演示一個例子,代碼1 代碼 DECLARE @TableName VARCHAR(50),@Sql NVARCHAR (MAX),@OrderID INT; SET @TableName = 'Orders'; SET @OrderID = 10251; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) +'WHERE OrderID = '+ CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC' EXEC(@sql); 注:這里的EXEC括號中只允許包含一個字符串變量,但是可以串聯多個變量,如果我們這樣寫EXEC:EXEC('SELECT TOP('+ CAST(@TopCount AS VARCHAR(10)) +')* FROM '+ QUOTENAME(@TableName) +' ORDER BY ORDERID DESC'); SQL編譯器就會報錯,編譯不通過,而如果我們這樣:EXEC(@sql+@sql2+@sql3); 編譯器就會通過; 所以最佳的做法是把代碼構造到一個變量中,然后再把該變量作為EXEC命令的輸入參數,這樣就不會受限制了。 EXEC的缺點是不提供接口,這里的接口是指,它不能執行一個包含一個帶變量符的批處理,如下 代碼 DECLARE @TableName VARCHAR(50),@Sql NVARCHAR(MAX),@OrderID INT; SET @TableName = 'Orders'; SET @OrderID = 10251; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + 'WHERE OrderID = @OrderID ORDER BY ORDERID DESC' EXEC(@sql); 關鍵就在SET @sql這一句話中,如果我們運行這個批處理,編譯器就會產生一下錯誤 Msg 137, Level 15, State 2, Line 1 必須聲明標量變量 "@OrderID"。

          使用EXEC時,如果您想訪問變量,必須把變量內容串聯到動態構建的代碼字符串中,如:SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + 'WHERE OrderID = '+CAST(@OrderID AS VARCHAR(10))+' ORDER BY ORDERID DESC' 串聯變量的內容也存在性能方面的弊端。SQL Server為每一個的查詢字符串創建新的執行計劃,即使查詢模式相同也是這樣。

          為演示這一點,先清空緩存中的執行計劃 DBCC FREEPROCCACHE (這個不是本文所涉及的內容,您可以查看MS的MSDN) 將代碼1運行3次,分別對@OrderID 賦予下面3個值,10251,10252,10253。然后使用下面的代碼查詢 SELECT cacheobjtype,objtype,usecounts,sql FROM *heobjects WHERE sql NOT LIKE '%cach%' AND sql NOT LIKE '%sys.%' 點擊F5運行,我們可以看到,每執行一次都要產生一次的編譯,執行計劃沒有得到充分重用。

          EXEC除了不支持動態批處理中的輸入參數外,他也不支持輸出參數。默認情況下,EXEC把查詢的輸出返回給調用者。

          例如下面代碼返回Orders表中所有的記錄數 DECLARE @sql NVARCHAR(MAX) SET @sql = 'SELECT COUNT(ORDERID) FROM Orders'; EXEC(@sql); 然而,如果你要把輸出返回給調用批處理中的變量,事情就沒有那么簡單了。為此,你必須使用INSERT EXEC語法把輸出插入到一個目標表中,然后從這表中獲取值后賦給該變量,就像這樣:代碼 DECLARE @sql NVARCHAR(MAX),@RecordCount INT SET @sql = 'SELECT COUNT(ORDERID) FROM Orders'; CREATE TABLE #T(TID INT); INSERT INTO #T EXEC(@sql); SET @RecordCount = (SELECT TID FROM #T) SELECT @RecordCount DROP TABLE #*_executesql的使用 sp_executesql命令在SQL Server中引入的比EXEC命令晚一些,它主要為重用執行計劃提供更好的支持。

          為了和EXEC作一個鮮明的對比,我們看看如果用代碼1的代碼,把EXEC換成sp_executesql,看看是否得到我們所期望的結果 代碼 DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OrderID INT ,@sql2 NVARCHAR(MAX); SET @TableName = 'Orders '; SET @OrderID = 10251; SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE OrderID = '+CAST(@OrderID AS VARCHAR(50)) + ' ORDER BY ORDERID DESC' EXEC sp_executesql @sql 注意最后一行;事實證明可以運行;sp_executesql提供接口 sp_executesql命令比EXEC命令更靈活,因為它提供一個接口,該接口及支持輸入參數也支持輸出參數。這功能使你可以創建帶參數的查詢字符串,這樣就可以比EXEC更好的重用執行計劃,sp_executesql的構成與存儲過程非常相似,不同之處在于你是動態構建代碼。

          它的構成包括:代碼快,參數聲明部分,參數賦值部分。說了這么多,還是看看它的語法:EXEC sp_executesql @stmt= ,--類似存儲過程。

          SQLServer語句和存儲過程是怎樣的

          --列出SQL SERVER 所有表,字段名,主鍵,類型,長度,小數位數等信息 --在查詢分析器里運行即可,可以生成一個表,導出到EXCEL中 -- ====================================================== SELECT (case when a。

          colorder=1 then d。name else ' end)表名, a。

          colorder 字段序號, a。name 字段名, (case when COLUMNPROPERTY( a。

          id,a。name,'IsIdentity')=1 then '√'else ' end) 標識, (case when (SELECT count(*) FROM sysobjects WHERE (name in (SELECT name FROM sysindexes WHERE (id = a。

          id) AND (indid in (SELECT indid FROM sysindexkeys WHERE (id = a。id) AND (colid in (SELECT colid FROM syscolumns WHERE (id = a。

          id) AND (name = a。name))))))) AND (xtype = 'PK'))>0 then '√' else ' end) 主鍵, b。

          name 類型, a。length 占用字節數, COLUMNPROPERTY(a。

          id,a。name,'PRECISION') as 長度, isnull(COLUMNPROPERTY(a。

          id,a。name,'Scale'),0) as 小數位數, (case when a。

          isnullable=1 then '√'else ' end) 允許空, isnull(e。 text,') 默認值, isnull(g。

          [value],') AS 字段說明 FROM syscolumns a left join systypes b on a。xtype=b。

          xusertype inner join sysobjects d on a。 id=d。

          id and d。xtype='U' and d。

          name'dtproperties' left join syscomments e on a。cdefault=e。

          id left join sysproperties g on a。 id=g。

          id AND a。colid = g。

          smallid order by a。id,a。

          colorder ------------------------------------------------------------------------------------------------- 列出SQL SERVER 所有表、字段定義,類型,長度,一個值等信息 并導出到Excel 中 -- ====================================================== -- Export all user tables definition and one sample value -- jan-13-2003,Dr。 Zhang -- ====================================================== 在查詢分析器里運行: SET ANSI_NULLS OFF GO SET NOCOUNT ON GO SET LANGUAGE 'Simplified Chinese' go DECLARE @tbl nvarchar(200),@fld nvarchar(200),@sql nvarchar(4000),@maxlen int,@sample nvarchar(40) SELECT d。

          name TableName,a。name FieldName,b。

          name TypeName,a。length Length,a。

          isnullable IS_NULL INTO #t。

          存儲過程與SQL語句是怎樣的

          我的一位朋友說:他從臺灣知名技術作家李維先生的一本書中獲悉,如果用存儲過程封裝SQL語句,系統效率將有極大提升。

          他做過實驗!!! --我相信朋友做過實驗,盡管非親眼所見。不過我估計他的實驗有問題,那樣的實驗不但蒙蔽了他,也蒙蔽了李維先生(如果他的著作中的內容沒有被誤會),甚至更多的人。

          然而我必須拿出證據,方能使人信服。 后來遇到一個具體的問題:客戶端經常要向數據庫插入記錄。

          在J2EE中,一個 Entity Bean Home 的 create 方法調用中,一般就沒用存儲過程。朋友立馬在觀點上持反對意見( 可能是因為他暫時有來得及否決J2EE ),認為要是J2EE能夠將“插入記錄”諸如此類動作改為對存儲過程的調用就好了。

          我們因此再次發生爭論(我僅是反對朋友的看法,但也沒提出任何我自己的看法,因為要下一個結論是很不容易的)。最后我不得已而做了實驗,分別在 Oracle 10g 和 postgreSQL 8。

          0。1 上。

          實驗內容如下: A、建表腳本: create table ztest( fieldA integer primary key, fieldB varchar(128), fieldC varchar(128) ) B、客戶端請求 DBMS 執行的 insert SQL語句: insert into ztest values( ?1, ?2, ?3 ); -- ?1,?2,?3 將在運行時以合理的值替代之 C、客戶端調用的存儲過程(JDBC CallableStatement 調用): Oracle:(調用方式 call up_add(。 。

          。),) create or replace procedure up_add( fieldA integer, fieldB varchar, fieldC varchar ) is begin insert into ztest values( fieldA, fieldB, fieldC); end; postgreSQL:(客戶端調用方式 select uf_add(。

          ) ) CREATE OR REPLACE FUNCTION uf_add (integer, varchar, varchar) RETURNS void AS' begin insert into ztest values($1,$2,$3); return; end; 'LANGUAGE 'plpgsql' VOLATILE RETURNS NULL ON NULL INPUT SECURITY INVOKER; D、環境: postgreSQL:數據庫服務器與客戶端程序“都在本機”并“同時運行” Oracle: 獨立數據庫服務器(測試時始終有人在慢慢打字,應該對機器性能無影響) 測試: 通過不同方式( 即 請求DBMS執行SQL語句 和 調用DBMS邏輯等價的存儲過程)向測試表中連續加入 1024 記錄 經多次反復測試,得結果如下 postgreSQL: 兩種方式下,測試時間均為 21- 24 seconds 之間 (每個結果的測試環境一致) Oracle: 8次 SQL 執行請求分別用時(ms) 5422 4750 3875 3812 5672 3531 3484 3547 6次 存儲過程調用分別用時(ms) 4578 4500 6297 4219 4547 5734 (每個結果的測試環境一致)由此可知,存儲過程封裝簡單的 SQL 語句,效率相當,且可能更低。 但很多朋友的確得出結論:存儲過程的確比SQL快。

          為什么?---- 因為他們測試時寫了一個不具實際意義,同時也與SQL語句的“一次客戶端調用”不具可比性的測試用存儲過程。Oracle PL/SQL 描述方式如下,該方法一次調用就可以向數據表添加 1024 條記錄,連網絡通訊都省了。

          怪不得性能有“千倍差異”! create or replace procedure up_add( ) is declare n:integer; begin n := 0; while( n 它與客戶端一次提交單條 SQL 語句沒有可比性:當一次只需要向DBMS提交一條新記錄,要這個存儲過程干什么呢?。

          使用SQL語句創建存儲過程

          使用SQL語句創建存儲的具體過程如下:

          1、首先,打開企業管理器,選擇【工具】-【查詢分析器】:

          2、然后,輸入SQL語句。如下:

          CREATE PROCEDURE byroyalty1 @percentage int

          AS

          select au_id from titleauthor

          where *yper = @percentage

          GO

          3、然后,點擊確定之后,命令就會自動添加進查詢中:

          4、然后執行一下剛輸入的命令:

          5、最后,就可以在彈出的小窗口中查看存儲過程了:

          SQL實現存儲過程

          存儲過程的概念

          SQL Server提供了一種方法,它可以將一些固定的操作集中起來由SQL Server數據庫服務器來完成,以實現某個任務,這種方法就是存儲過程。

          存儲過程是SQL語句和可選控制流語句的預編譯集合,存儲在數據庫中,可由應用程序通過一個調用執行,而且允許用戶聲明變量、有條件執行以及其他強大的編程功能。

          在SQL Server中存儲過程分為兩類:即系統提供的存儲過程和用戶自定義的存儲過程。

          可以出于任何使用SQL語句的目的來使用存儲過程,它具有以下優點:

          可以在單個存儲過程中執行一系列SQL語句。

          可以從自己的存儲過程內引用其他存儲過程,這可以簡化一系列復雜語句。

          存儲過程在創建時即在服務器上進行編譯,所以執行起來比單個SQL語句快,而且減少網絡通信的負擔。

          安全性更高。

          創建存儲過程

          在SQL Server中,可以使用三種方法創建存儲過程 :

          ①使用創建存儲過程向導創建存儲過程。

          ②利用SQL Server 企業管理器創建存儲過程。

          ③使用Transact-SQL語句中的CREATE PROCEDURE命令創建存儲過程。

          oracle 數據庫 怎么執行存儲過程

          一。 概述 Oracle存儲過程開發的要點是:

          1; 使用Notepad文本編輯器,用Oracle PL/SQL編程語言寫一個存儲過程;

          2; 在Oracle數據庫中創建一個存儲過程;

          3; 在Oracle數據庫中使用SQL*Plus工具運行存儲過程;

          4; 在Oracle數據庫中修改存儲過程;

          5; 通過編譯錯誤調試存儲過程;

          6; 刪除存儲過程; 二。環境配置

          包括以下內容:

          1; 一個文本編輯器Notepad;

          2; Oracle SQL*Plus工具,提交Oracle SQL和PL/SQL 語句到Oracle database。

          3; Oracle 10g express數據庫,它是免費使用的版本;

          需要的技巧:

          4; SQL基礎知識,包括插入、修改、刪除等

          5; 使用Oracle's SQL*Plus工具的基本技巧;

          6; 使用Oracle's PL/SQL 編程語言的基本技巧; 三。寫一個存儲過程

          在Notepad, 寫下:

          CREATE OR REPLACE PROCEDURE skeleton IS BEGIN NULL; END; 把文件存為*.

          讓我們一行行遍歷這個存儲過程:

          1 CREATE OR REPLACE PROCEDURE skeleton 2 IS 3 BEGIN

          4 NULL; 5 END; 行1: CREATE OR REPLACE PROCEDURE 是一個SQL語句通知Oracle數據庫去創建一個叫做skeleton存儲過程, 如果存在就覆蓋它; 行2: IS關鍵詞表明后面將跟隨一個PL/SQL體。

          行3: BEGIN關鍵詞表明PL/SQL 體的開始。

          四。創建一個存儲過程

          SQL語句CREATE OR REPLACE PROCEDURE在Oracle數據庫中創建、編譯和保存一個存儲過程。

          從Window打開SQL*Plus并且從SQL*Plus 登錄到你的數據庫;打開*文件。

          在SQL命令提示符下輸入以下命令:

          SQL@skeleton SQL/ SQL*Plus裝載*文件的內容到 SQL*Plus緩沖區并且執行SQL*Plus語句;SQL*Plus 會通知你存儲過程已經被成功地創建。

          SQL 中存儲過程怎么使用

          一、簡單的儲存過程:

          1、創建一個存儲過程

          create procedure GetUsers()

          begin

          select * from user;

          end;12345

          2、調用存儲過程

          call GetUsers();12

          3、刪除存儲過程

          drop procedure if exists GetUsers;

          二、帶參數的存儲過程

          1、MySql 支持 IN (傳遞給存儲過程) , OUT (從存儲過程傳出) 和 INOUT (對存儲過程傳入和傳出) 類型的參數 , 存儲過程的代碼位于 BEGIN 和 END 語句內 , 它們是一系列 SQL 語句 , 用來檢索值 , 然后保存到相應的變量 (通過指定INTO關鍵字) ;

          2、下面的存儲過程接受三個參數 , 分別用于獲取用戶表的最小 , 平均 , 最大分數 , 每個參數必須具有指定的類型 , 這里使用十進制值(decimal(8,2)) , 關鍵字 OUT 指出相應的參數用來從存儲過程傳出

          create procedure GetScores(

          out minScore decimal(8,2),

          out avgScore decimal(8,2),

          out maxScore decimal(8,2)

          )

          begin

          select min(score) into minScore from user;

          select avg(score) into avgScore from user;

          select max(score) into maxScore from user;

          end;1234567891011

          3、調用此存儲過程 , 必須指定3個變量名(所有 MySql 變量都必須以 @ 開始) , 如下所示 :

          call GetScores(@minScore, @avgScore, @maxScore);12

          4、該調用并沒有任何輸出 , 只是把調用的結果賦給了調用時傳入的變量 @minScore, @avgScore, @maxScore , 然后即可調用顯示該變量的值 :

          select @minScore, @avgScore, @maxScore;

          5、使用 IN 參數 , 輸入一個用戶 id , 返回該用戶的名字 :

          create procedure GetNameByID(

          in userID int,

          out userName varchar(200)

          )

          begin

          select name from user

          where id = userID

          into userName;

          end;12345678910

          6、調用存儲過程 :

          call GetNameByID(1, @userName);

          select @userName;123

          參考資料

          SQL存儲過程使用介紹.csdn博客[引用時間2017-12-31]

          轉載請注明出處華閱文章網 » sql語句執行存儲過程

          短句

          經典英語句子大全

          閱讀(363)

          求英語的經典語句 一、30句經典英語句子 1. Pain past is pleasure.(過去的痛苦就是快樂。)[無論多么艱難一定要咬牙沖過去,將來回憶起來一定甜蜜無比。] 2. While there is life, there is hope.(有

          短句

          vbwhile語句

          閱讀(801)

          VB中的do while loop語句 Dim a, b, s, i As Integer '定義變量a = Val(Text1.Text) '把Text1由字符串轉成數值后賦值給變量ab = Val(Text2.Text) '同上s = 0 's的值歸零i

          短句

          sql修改數據語句

          閱讀(362)

          怎樣修改數據庫中的數據 1、首先打開SQL Server Management管理工具,使用sql語句創建一張測試表。2、在測試表中,插入3條測試數據。3、使用一條語句批量修改整個表的數據。4

          短句

          早安語句子

          閱讀(364)

          早安心情優美的句子 1、早安!看著天邊的紅日蹦出來一次又一次,希望你的一天也如剛升起的紅日一般!2、早安!天上的云好潔白,希望你的心情也如白云一般。3、早安!夜里的星星有沒

          短句

          修改表結構sql語句

          閱讀(335)

          如何用SQL語句修改表結構 增加字段:alter table 表名 add 列名 屬性刪除字段:alter table 表名 drop column 列名 修改字段:alter table 表名 alter column 列名 set data ty

          短句

          batif循環語句

          閱讀(375)

          后綴名bat的if語句 IF 語句1 語句2 語句3 如果語名1不成立,則直接執行語句3,實際上,語句3 與 if 語句沒有關系 , 但是,如果 if 或 for 語法錯誤,則直接退出,不執行下面的語句。 if

          短句

          上海的語句

          閱讀(296)

          形容“上海”的句子有哪些1、在外灘哥特式、羅馬式、巴洛克式、中西合壁式等“萬國建筑博覽群”中間看,明珠塔直指蒼穹,璀璨的光芒閃耀在夢幻的夜空,也閃耀在歷史的新篇章。2、上海東方明珠電視塔有著獨特漂亮的外形,整座建筑在正午的陽光

          短句

          tclif語句

          閱讀(462)

          tc的if語句 60<=x<=69這種賦值方式是錯誤的. 要全改成x>=60&&x<=69. 程序幫你改了一下,你試試. #include<stdio.h> void main() { float x;char y; scanf("%f",&y); if (x>

          短句

          魚的經典語句

          閱讀(357)

          關于魚的經典語句 1、《小雅·南有嘉魚》 先秦:佚名 南有嘉魚,烝然罩罩。君子有酒,嘉賓式燕以樂。 南有嘉魚,烝然汕汕。君子有酒,嘉賓式燕以衎。 南有樛木,甘瓠累之。君子有酒,嘉

          短句

          設置主鍵語句

          閱讀(343)

          數據庫如何設置主鍵(ID)自動增長啊(SQL語句) 自動增長列(auto_increment) sqlserver數據庫 (identity) oracle數據庫( sequence)給主鍵添加自動增長的數值,列只能是整數類型CREATE TAB

          短句

          oracle的case語句

          閱讀(451)

          oracle里面如何寫case語句呢SELECT LogID,UserID,LogTime,Url,Description,(case OperateType when OperateType = 0 then '新增' when OperateType=1

          短句

          復合語句與函數

          閱讀(737)

          C語言中復合語句和嵌套的區別 復合語句,就是用大括號{}括起的任意條語句。本來它們是好幾條語句,但是,被{ }括起來之后,它們語法上就是一條語句。關于這個怎么用,那關鍵還是括

          短句

          英語圣誕的語句

          閱讀(341)

          所有圣誕節的英語祝福語(帶中文) Merry Christmas! 圣誕快樂! Merry Christmas and a happy new year.敬祝圣誕,恭賀新喜。 Best wishes on this holiday season. 獻上最誠摯

          短句

          sql存儲過程執行sql語句

          閱讀(340)

          怎樣SQL存儲過程中執行動態SQL語句 MSSQL為我們提供了兩種動態執行SQL語句的命令,分別是EXEC和sp_executesql;通常,sp_executesql則更具有優勢,它提供了輸入輸出接口,而EXEC沒

          短句

          經典英語句子大全

          閱讀(363)

          求英語的經典語句 一、30句經典英語句子 1. Pain past is pleasure.(過去的痛苦就是快樂。)[無論多么艱難一定要咬牙沖過去,將來回憶起來一定甜蜜無比。] 2. While there is life, there is hope.(有

          短句

          vbwhile語句

          閱讀(801)

          VB中的do while loop語句 Dim a, b, s, i As Integer '定義變量a = Val(Text1.Text) '把Text1由字符串轉成數值后賦值給變量ab = Val(Text2.Text) '同上s = 0 's的值歸零i

          短句

          修改表結構sql語句

          閱讀(335)

          如何用SQL語句修改表結構 增加字段:alter table 表名 add 列名 屬性刪除字段:alter table 表名 drop column 列名 修改字段:alter table 表名 alter column 列名 set data ty

          短句

          早安語句子

          閱讀(364)

          早安心情優美的句子 1、早安!看著天邊的紅日蹦出來一次又一次,希望你的一天也如剛升起的紅日一般!2、早安!天上的云好潔白,希望你的心情也如白云一般。3、早安!夜里的星星有沒

          短句

          sql修改數據語句

          閱讀(362)

          怎樣修改數據庫中的數據 1、首先打開SQL Server Management管理工具,使用sql語句創建一張測試表。2、在測試表中,插入3條測試數據。3、使用一條語句批量修改整個表的數據。4

          短句

          batif循環語句

          閱讀(375)

          后綴名bat的if語句 IF 語句1 語句2 語句3 如果語名1不成立,則直接執行語句3,實際上,語句3 與 if 語句沒有關系 , 但是,如果 if 或 for 語法錯誤,則直接退出,不執行下面的語句。 if

          短句

          勸學的語句

          閱讀(332)

          有關勵志、勸學的名言、詩句1、少壯不努力,老大徒悲傷.—— 漢樂府古辭《長歌行》 2、業精于勤,荒于嬉.—— 韓 愈《進學解》 3、一寸光陰一寸金,寸金難買寸光陰.——《增廣賢文》 4、天行健,君子以自強不息.——《周易?乾?象》 5、志不

          短句

          mysqlwhereand語句

          閱讀(312)

          mysql的casewhen語句轉oraclewhere子句條件如下:wherea.xxx='asdf'oracle也有case when的語法,照辦就行,不過用在where條件中,需要有返回值的比較.這是根據你提供的語句修改,給你提供一個參考吧:where

          <optgroup id="r9hwm"></optgroup><nav id="r9hwm"><label id="r9hwm"></label></nav>

            <tt id="r9hwm"><tr id="r9hwm"></tr></tt>
          1. 
            
          2. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

          3. <optgroup id="r9hwm"><samp id="r9hwm"><dl id="r9hwm"></dl></samp></optgroup>

                1. <listing id="r9hwm"></listing>
                  <delect id="r9hwm"></delect>
                  <optgroup id="r9hwm"><samp id="r9hwm"><ol id="r9hwm"></ol></samp></optgroup>
                  亚洲丰满少妇xxxxx高潮