国产精品青草久-国产精品情侣愉拍-国产精品区网红主-国产精品区一区二-国产精品热久久-国产精品热热热-国产精品人aⅴ-国产精品人成在线-国产精品人妻人伦-国产精品人人

金喜正规买球

SQL Compare使用教程:如何使用SQL Compare CLI和批處理腳本構建和填充SQL Server數據庫

翻譯|使用教程|編輯:楊鵬連|2020-08-06 10:04:03.290|閱讀 294 次

概述:Phil Factor提供了功能強大的DOS批處理腳本,當與SQL Compare CLI結合使用時,您可以在開發過程中從源構建數據庫,并用測試所需的特定數據集填充它們。

# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>

SQL Compare是一款比較和同步SQL Server數據庫結構的工具。現有超過150,000的數據庫管理員、開發人員和測試人員在使用它。當測試本地數據庫,暫存或激活遠程服務器的數據庫時,SQL Compare將分配數據庫的過程自動化。

點擊下載SQL Compare試用版

假設您需要構建數據庫的最新版本,將其存儲有測試所需的數據,然后分發該數據庫的多個副本。到目前為止,最快,最簡單的方法就是使用SQL Clone,尤其是在數據庫很大的情況下。或者,使用SQL Toolbelt,則可以從源目錄構建五個副本中的每個副本,通過BCP將它們填充到標準測試數據集,然后使用SQL Change Automation和某些PowerShell(或SQL Compare CLI和PowerShell)來部署它們。

但是,顯然,仍然有Ops的人更喜歡使用PowerShell而非DOS腳本,因為我最近關于該主題的博客之一令人驚訝地受歡迎。他們熟悉它,并且經常仍然維護著現有DOS腳本的大量存檔。我沉思,可以創建一個執行相同功能的DOS批處理腳本嗎?沒有PowerShell,沒有SMO,只有SQL Compare,SQLCMD和BCP。

DOS批處理腳本

乍一看,很難想象沒有一種比DOS Batch更有前景的腳本語言,盡管它特別適合于文件系統任務。它的根源可以通過CP / M和MSDOS追溯到UNIX。它仍在MSDOS中。這些年來,我不得不多次使用它來執行沒有現實選擇的任務。令人驚訝的是,它仍然吸引了少量但專注的追隨者。有關示例的最新和有趣的集合,請參見“ Rosetta代碼:Category:Batch文件”和DosTips – DOS 批處理指南。Rosetta Code網站允許您比較不同語言執行標準算法和任務時的代碼。

除了給管理員帶來溫暖,懷舊的感覺外,有時還存在共享數據庫租用之類的時間,或者創建帶有特殊數據集進行測試的數據庫時,像這樣基于DOS的方法會更方便。

更重要的是,幾乎每個版本管理工具,構建自動化工具,部署工作流系統,配置管理或持續集成工具都允許您執行DOS批處理。盡管PowerShell在Windows上非常流行,但它與我們所使用的通用腳本語言非常接近。

建立和填充數據庫的任務

在開發和測試期間,您通常需要創建一個或多個數據庫版本的副本,并存儲測試所需的特定數據。您可能需要維護幾個數據集。例如:

  • 可能不允許您訪問真實數據。這樣做有很多充分的理由。它可以是私人的也可以是機密的。這可能是非法的。因此,您將需要一個生成的數據集,該數據集在本質上與實數據盡可能接近,或者是真實數據的蒙版匿名版本。
  • 您可能正在支持一系列需要標準化數據集的測試,每次測試都需要使用標準化數據集,以使測試人員能夠進行黑盒測試。
  • 您可能正在進行可伸縮性測試,以確保數據庫設計在處理不同數量的數據時性能良好。
我們需要一種自動的方法來構建每個工作數據庫副本。如前所述,雖然有更簡便,更快捷的方法,但是我們將使用DOS批處理文件。它將使用SQL Compare從源目錄構建數據庫,然后使用BCP文件現有目錄中的數據填充該數據庫。為此,您提供根目錄的名稱,并將其存儲在代表服務器和數據庫的子目錄下的數據。它根據需要創建這些目錄。DOS腳本聯系新建的數據庫,獲取表列表,然后將數據從源目錄到目標進行BCP。
創建初始工作副本后,我們可以將其用作源數據庫來創建后續副本。在創建空的目標數據庫之前,DOS批處理腳本將檢查目標并刪除任何同名的現有數據庫。然后,它使用SQL Compare將空目標的模式與源同步,然后最終復制源數據庫中的所有數據。
除許多看似簡單的任務外,還存在某些復雜性。目標服務器需要使用正確的擴展名進行適當的設置,例如全文搜索,以滿足數據庫的要求。數據庫的要求可能需要特殊的過濾器或開關。使用SQL Compare,我們可以使用ArgFiles來優化腳本以允許這樣做。我展示了一種滑入BCP中可配置參數的方法,因為我需要具有這樣的設備才能進行ID /密碼驗證。
如果表或數據庫中包含非法名稱且其中帶有空格,則必須加以處理。如果在存儲文件時將它們用作目錄名,則SQL Server實例名稱也需要修改。
一項比較棘手的任務是從磁盤讀取任何必需的ID和密碼。將它們保存在腳本中是可怕的。至少必須將它們保存在用戶區的文件中,在該文件中NTFS安全性應使它們不被窺視。在理想情況下,每個應用程序都將接受并讀取標準連接字符串,但可悲的是,每個CLI應用程序似乎都有不同的方式來執行此操作,因此必須對憑據進行解析并為命令行正確布局。

運行代碼

出于本文的目的,該腳本采用了意識流樣式,以使其易于遵循,盡管如果您要做的工作很多,可以很容易地將其變成一個函數。

Echo off
VERIFY errors 2>nul
SETLOCAL ENABLEDELAYEDEXPANSION 
SETLOCAL ENABLEEXTENSIONS
Set outcome=did our best
if ERRORLEVEL 1 (
   echo could not set local execution environment
   goto bombsite
   )
REM set output to yes or no depending on whether you want the source to have its data copied out
Set output=yes 
REM set input to yes or no depending on whether you want the target to have its data copied in
Set input=yes
Rem set Source to the database you wish to copy
Set Source=MySourceDatabase
Rem Set SourceServer to the name of the server or instance to copy from
Set Sourceserver=MySourceServer
Rem set Target to the database you wish to copy to
Set Target=TestCopy
Rem BEWARE!! It deletes the existing copy of the database
Rem Set TargetServer to the name of the server or instance to copy to
Set TargetServer=MyDestinationServer
REM Specify your work directory. I chose 'BatchBCP' in my user area
Set workpath=%userProfile%\BatchBCP
Rem Specify a scripts directory for the source if you want one. otherwise put 'none'
Set SourceScriptsDirectory=c:\MySQLSourceDirectories\MyDatabase
REM before you start, if you need to write out your SQLCMD credentials to a file in your user
rem area using code like this, ONLY if you use SQL Server Credentials.
Rem echo MyUserID/MyPassword>%userProfile%\%TargetServer:\=_%SQLCompare.txt 
rem echo MyOtherUserID/MyOtherPassword>%userProfile%\%SourceServer:\=_%SQLCompare.txt 
Rem if ERRORLEVEL 1 (
Rem   echo Could not write Source Credentials
REM   goto bombsite
REM   )
rem
REM read in your Source SQLCMD command and credentials if you have any
if exist %userProfile%\%SourceServer:\=_%SQLCompare.txt (
   Set /p SourceCredentials=<%userProfile%\%SourceServer:\=_%SQLCompare.txt 
   )
if ERRORLEVEL 1 (
   echo Could not read in Source Credentials
   goto bombsite
   )
Rem Parse the source credentials into two variables
set "Sourceuid=%SourceCredentials:/=" & set "SourcePw=%"
Rem credentials are presented in two different ways by the CLI apps
Set SourcesqlcmdCredentials= /U %Sourceuid% /P %SourcePw%
Set SourceSQLCompareCredentials= /username1:%Sourceuid% /Password1:%SourcePw%
rem set source credentials correctly for windows security
IF NOT DEFINED  SourceCredentials ( 
  Set SourcesqlcmdCredentials =
  set SourceSQLCompareCredentials =
 )
REM read in your Target SQLCMD command and credentials if you have any
if exist %userProfile%\%TargetServer:\=_%SQLCompare.txt (
Set /p TargetCredentials=<%userProfile%\%TargetServer:\=_%SQLCompare.txt
)
if ERRORLEVEL 1 (
      echo Could not read in Target Credentials
      goto bombsite
    )
Rem Parse the target credentials into two variables
set "Targetuid=%TargetCredentials:/=" & set "TargetPw=%"
Rem credentials are presented in two different ways by the CLI apps
Set TargetsqlcmdCredentials= /U %Targetuid% /P %TargetPw%
Set TargetSQLCompareCredentials= /username2:%Targetuid% /Password2:%TargetPw%
rem set target credentials orrectly for windows security
IF NOT DEFINED  TargetCredentials ( 
  Set TargetsqlcmdCredentials =
  set TargetSQLCompareCredentials =
 )
Rem Now we check the Target database on the target server to see if it
Rem already exists, If so, we delete it and create an empty database
Set QUERY= IF EXISTS (SELECT name FROM sys.databases  where NAME LIKE 'testcopy' ) DROP DATABASE TestCopy; CREATE DATABASE TestCopy
sqlcmd -S %targetServer% %TargetsqlcmdCredentials% -d master -h -1  -f 65001  -Q "%QUERY%"
if ERRORLEVEL 1 (
   echo Failed to use target %targetServer% to create %target%.
   goto bombsite
   )
Rem now we synchronize the source with the target to provide  a fresh 
Rem new database at the right level
if %SourceScriptsDirectory% == none (
   echo synchronizing database %Source% on %sourceServer%  with %Target% on %TargetServer%
   "%ProgramFiles(x86)%\Red Gate\SQL Compare 13\sqlcompare.exe" /server1:%sourceServer% /database1:%Source%  %SourceSQLCompareCredentials% /server2:%targetServer% /database2:%Target% %TargetSQLCompareCredentials% /Synchronize
   SET outcome=created database %Target% on %TargetServer% from  %Source% on %sourceServer%
   ) else (
   echo synchronizing scripts directory %SourceScriptsDirectory% with %Target% on %TargetServer%
   "%ProgramFiles(x86)%\Red Gate\SQL Compare 13\sqlcompare.exe" /scripts1:%SourceScriptsDirectory% /server2:%targetServer% /database2:%Target% %TargetSQLCompareCredentials% /Synchronize
   SET outcome=created database %Target% on %TargetServer% from scripts
   )
if ERRORLEVEL 1 (
   echo An error with SQL Compare occurred.
   goto bombsite
   )
REM see the output onscreen while debugging.
REM check whether the database directory within the workpath/server directory exists
if not exist "%workpath%\%SourceServer:\=_%\%Source%" (md %workpath%\%SourceServer:\=_%\%Source%) 
if ERRORLEVEL 1 (
   echo An error creating "%workpath%\%SourceServer:\=_%\%Source%"  for database occurred 
   goto bombsite
   )
Echo Copying table data from %SourceServer%.%Source% to "%workpath%\%SourceServer:\=_%\%Source% "
Rem Create the query that brings you the list of tables. This is used for both 
rem the input and output operations. We can cope with tables that use  illegal characters
Set QUERY="SET NOCOUNT ON; SELECT replace(Quotename(Object_Schema_Name(object_id))+'.'+Quotename(name),' ','--') AS The_Tables FROM sys.tables WHERE is_ms_shipped=0;"
Rem only do the next block if the user wants data copied out from the source
if %output% == yes (
   REM Execute the query and work through the returned list of tables
   for /F usebackq %%i in (`sqlcmd -S %sourceServer%  %SourcesqlcmdCredentials%  -d %Source% -h -1  -f 65001  -Q %QUERY%`) do (
      rem for every tablespec in the list append the following text ....
      REM catch the first error caused by the sqlcmd 
      if ERRORLEVEL 1 (
         echo An error ovccured while accessing  %SourceServer%  to get the list of tables
         goto bombsite
      )
      Set Tablename= %%i
      for /f "tokens=* delims= " %%a in ("!Tablename!") do set Tablename=%%a
      Rem correct the name of the table
      Set Tablename=!Tablename:--= !
      REM change a dot for a dash as it isn't legal
      set filename= !Tablename:.=-!
      REM trim the filename- well, remove all spaces
      Set "filename=!filename: =!"
      echo Copying out data from !Tablename! in database %Source% on server %SourceServer% to !filename!.bcp
      BCP "!Tablename!" out  %workpath%\%SourceServer:\=_%\%Source%\!filename!.bcp  -n -d %Source%  -S %sourceServer%   %SourcesqlcmdCredentials% 
      if ERRORLEVEL 1 (
         echo BCP error when copying out data from !Tablename! in database %Source% on server %SourceServer%
         goto bombsite
         )
      ) 
      SET outcome=%outcome%, copied out data from %Source% on %SourceServer%
   )
Rem only do the next block if the user wants data copied out to the target
if %Input% == yes (
   Echo Copying table data to %TargetServer%.%Target% from "%workpath%\%SourceServer:\=_%\%Source%"
   REM Execute the query and create the entire SQL Command file that will be executed
   for /F usebackq %%i in (`sqlcmd -S %TargetServer%   %TargetsqlcmdCredentials%  -d %Target% -h -1  -f 65001  -Q %QUERY%`) do (
      rem for every tablespec in the list append the following text ....
      REM catch the first error caused by the sqlcmd 
      if ERRORLEVEL 1 (
         echo An error occured while accessing  %TargetServer%  to get the list of tables
         goto bombsite
         )
      Set Tablename= %%i
      for /f "tokens=* delims= " %%a in ("!Tablename!") do set Tablename=%%a
      Rem correct the name of the table
      Set Tablename=!Tablename:--= !
      REM change a dot for a dash as it isn't legal
      set filename= !Tablename:.=-!
      REM trim the filename- well, remove all spaces
      Set "filename=!filename: =!"
      echo Copying in data to !Tablename! in database %Target% on server %TargetServer% from %workpath%\%SourceServer:\=_%\%Source%\!filename!.bcp
      BCP "!Tablename!" in  %workpath%\%SourceServer:\=_%\%Source%\!filename!.bcp -n -d %Target% -E -S %TargetServer%   %TargetsqlcmdCredentials% 
      if ERRORLEVEL 1 (
         echo BCP error when copying in data from !Tablename! in database %target% on server %TargetServer%
         goto bombsite
         )
      ) 
   SET outcome=%outcome%, copied out data from %Source% on %SourceServer%
   )
 
goto end 
:bombsite
Rem This is where the program goes if a problem is detected
color 04
Echo Sadly, we failed, though we %outcome%!
echo on
ENDLOCAL
color
Exit /b 1
:end
REM This is where we go if all ended well. 
Echo we %outcome% and finished successfully
ENDLOCAL
echo on
Exit /b 0
全部測試

運行這個非常簡單。您做什么取決于任務。當然,您可以為每個任務設置批處理文件的不同版本,也可以選擇較低級別的維護選項,以記住源中注釋的配置選項。

1.從源目錄創建沒有數據的目標數據庫

在腳本的開始,在路徑的源目錄作為變量的值填充SourceScriptsDirectory,添加目標數據庫的名稱目標和實現目標服務器TargetServer,并在該指定workpath文件位置的路徑包含本地BCP數據文件的目錄。將輸出設置為no,將輸入設置為no(意味著不要將數據從源復制或復制到目標)。

2.從源目錄創建目標數據庫,并從BCP目錄填充數據

在腳本的開頭,在變量SourceScriptsDirectory中填寫源目錄的路徑,將目標數據庫的名稱添加到Target并將目標服務器的名稱添加到TargetServer。指定要在workpath文件位置,路徑到包含原始數據BCP文件的目錄。將輸出設置為no并將輸入設置為yes(表示不從源復制數據,而是將其復制到目標)

????????????????-??????°???èˉ′???è?a??¨??????
3.從源目錄創建目標數據庫,并填充源數據庫中的數據

在腳本的開頭,在變量SourceScriptsDirectory中填寫源目錄的路徑,將目標數據庫的名稱添加到Target并將目標服務器的名稱添加到TargetServer。指定要在workpath文件位置,路徑到包含原始數據BCP文件的目錄。將輸出設置為yes,將輸入設置為yes(表示從源復制數據并將其復制到目標)。

????????????????-??????°???èˉ′???è?a??¨??????
4.將目標數據庫與源數據庫(數據中的BCP)同步

您只需要在腳本的開頭填寫源數據庫和服務器的名稱,目標數據庫和服務器的名稱以及放置本地BCP數據文件的工作路徑文件位置。將輸出設置為yes并將輸入設置為yes。

è?a??¨???????????°???èˉ′????????1???

5.在沒有數據的情況下將目標數據庫與源數據庫同步

和以前一樣,在腳本的開頭填寫源數據庫和服務器的名稱,目標數據庫和服務器的名稱以及工作路徑位置。將輸出設置為no并將輸入設置為no。

處理登錄憑證

除非您要使用Windows登錄名進行操作,否則還需要將SQL Server憑據寫入一個文件,正如我在源代碼中所指出的那樣,該文件用于在用戶區域根目錄中使用的每臺服務器。這僅必須執行一次,然后您應該刪除代碼!我提供了執行此操作的源代碼:

REM before you start, if you need to write out your SQLCMD credentials to a file in your user
rem area using code like this, ONLY if you use SQL Server Credentials.
Rem echo MyUserID/MyPassword>%userProfile%\%TargetServer:\=_%SQLCompare.txt 
rem echo MyOtherUserID/MyOtherPassword>%userProfile%\%SourceServer:\=_%SQLCompare.txt 
Rem if ERRORLEVEL 1 (
Rem   echo Could not write Source Credentials
REM   goto bombsite
REM   )
rem
只需刪除REM關鍵字,添加您的UserID和憑據,一切都應該很好。執行代碼后,不要忘記刪除代碼。

運行DOS批處理腳本

打開命令提示符,然后鍵入批處理文件的名稱(包括路徑),然后關閉。DOS文件的性質就是這樣,事情很容易出錯,但是這段代碼應該不會有太多問題。要進行調試,請先刪除@echo第一行的內容,以便查看批處理的運行方式。這里還有更多提示。
這是典型的輸出,執行剛剛完成:

運行腳本后,您已經包括了BCP OUT操作(output=true),您應該在此處的目錄中看到文件:

如果啟動SQL數據比較,它將告訴您數據庫的兩個副本中的數據都相同。SQL Server也會對元數據說同樣的話。

結論

可以在DOS下作為CLI應用程序運行的應用程序的樂趣在于,您可以從多種腳本語言和方法中進行選擇。盡管我喜歡PowerShell,但周圍有很多人,特別是在Ops中,他們實際上更喜歡DOS批處理語言,因為它離操作系統很近,它在現有腳本的大型庫中使用,并且無需運行即可運行。特殊的腳本環境。

SQLCMD是一個功能強大的系統,您可以輕松地用其他方法來做很多事情。甚至數據庫開發人員也可以在常用片段庫的幫助下,將DOS視為吊裝腳本的便捷方法。如果將此功能與具有CLI接口的數據庫工具(例如SQL比較,SQL數據比較或SQL數據生成器)結合使用,那么您將擁有一個功能強大的工具包,可用于創建最新的開發版本并用所需的特定數據集填充它們。

相關產品推薦:

SQL Prompt:SQL語法提示工具

SQL Toolbelt:Red Gate產品套包

SQL Monitor:SQL Server監控工具


想要購買SQL Compare正版授權,或了解更多產品信息請點擊


標簽:

本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn

文章轉載自:

為你推薦

  • 推薦視頻
  • 推薦活動
  • 推薦產品
  • 推薦文章
  • 慧都慧問
掃碼咨詢


添加微信 立即咨詢

電話咨詢

客服熱線
023-68661681

TOP
国产普通话刺激视频 | 国产va免费精品高清在线观看 | 91精品中文字幕 | 精品国产一区二区三区免费不 | 日韩色情 | 中文字幕免费在线 | 日韩在线a视频免费播放 | 老司机67194免费观看 | 人妻少妇被猛烈进入中文字幕 | 国产午夜福利视频在线观看 | 果冻传媒携手京东天美麻豆 | 日韩免费a片奶头 | 成人一区二区三区免费视频 | 久久www免费人成精品香蕉 | 中文字幕在文字幕乱码一二三 | 国产一区二区三区成人欧美日韩在 | 午夜福利无遮挡十八禁视频 | 午夜三级国产精品理论三级 | a天堂视频在线观看 | 97国产成人精品免费视频 | a性色生活片久久毛片牛牛 a亚洲欧美中文日韩在线v日本 | 国产精品成久 | 亚洲欧美日韩国产高清在线播放 | 国产毛片高清一级国语 | 国语91| 成人伊人青草久久综合网 | 国产av大陆精品一区二区三区 | 午夜精品久久 | 99国产精品热久久久久久 | 国产美女流出白浆在线观看 | 欧美区精品系列在线观看不卡 | 国产成人综合亚洲欧美天堂 | 在线看片人成免费视频播放 | 少妇高潮喷水久久久影院 | 中文精品久久久久人妻不卡 | 91尤物在线视频 | 91大神精品在线观看 | 国产亚洲精品合集久久久久 | 99re视频免| 深夜福利国产69精品久久 | 日本高清va | 欧美日韩亚洲二区在线 | 91短视| 欧美亚洲成人动漫在线 | 亚洲国产欧美国产综合久久 | 国产精品分类视频分类一区 | 国产成人精品久久一区二区精品 | 91精产品自偷自偷综合下 | 精品一区二区三区在线观看 | 国产精品日本一区二区在线播放 | 国产成人精品三级麻豆 | 国产一区二区三区樱花动漫 | 欧美午夜精品一区二区蜜桃 | 熟妇高潮精品一区二区三区 | 国产在线播放精品 | 亚洲综合天堂av网站在线 | 亚洲欧美一区二区三区国产 | 成人性生交大片免费看国外 | 精品无码国产一区二区三区麻豆 | 亚洲精品亚洲人成在线播放 | 日本成a人片 | 成人性爱视频在线观看 | 亚洲av无码成人精品区国产 | 99热这里只有精品第一页 | 91香蕉在线观看 | 无码中文字幕aⅴ免费费放 无码中文字幕精品推荐 | 国产成人久久av免费 | 欧美熟妇性饥渴在线观看 | 亚洲av成人一区二区三区在线观看 | 中文无码制 | 国产成人aⅴ国产在线观看 国产成人aⅴ在线免费观看 | 亚洲一区二区三区在线观看网站 | 成人自拍视频免 | 国产精品不卡一区二区三区四区 | 天天躁日日 | 国产精品无码免费播放 | 九九九九九九伊人 | 在线播放的午夜网 | 一区二区不卡不卡 | 中文字幕无码不卡 | 91制片厂果冻传媒天 | 99热视 | 国产偷窥女洗浴在线观看 | 岛国aaaa级午夜福利片 | 99热这里只有精品热 | 亚洲福利一区福 | 少妇高潮喷潮久久久影院 | 欧美日韩一区二区三区四 | 成全高清 | 成人拍拍| 亚洲国产天堂久久综合 | 97亚洲精华液 | 国产啪精品视 | 精品伦精品一区二区三区视 | 国产高清无码在线播放 | 国产999精品久久久久久 | 人人爽人人爽人人片av免费 | 日本一卡| 国产亚洲综合久久 | 精品欧美一区二区三区久久久 | 国产一级a毛一级a视频 | 欧美伊人色综合久久天天 | 91视频入口| 亚洲av日韩在线中文一区二区 | 国产狼友视频一区 | 99国产成人高清在线观看 | 无码人妻av免费一 | 国产精品va在线 | 97精品伊人久久大香线蕉视频 | 国产专区在线 | 精品国产三级毛片 | 国产精品国产高清国产av | 欧美日韩高清一区二区三区 | 欧美精品黄页免费高清在线 | 国产亚洲欧美在线观看的 | 精品亚洲欧美视频在线观看 | 亚洲鲁丝片一区二区三区 | 亚洲日韩av无码中文 | 国产肥熟女视频一区二区 | 亚洲免费v一区二区三区 | 成人aⅴ综合视频国产永久观看 | 国产卡一在线观看视频 | 欧美ⅴa亚洲 | 亚洲无码精品免费一区 | 欧美午夜精品久久久久免费 | 国产亚洲综合成人91精品 | 亚洲一区免费在线观看 | 日本精品久久久久久久久免 | 国产性生大片免费观看性 | 超薄丝袜足j好爽在线 | 精品国产高清免费在线观看 | 久久91精 | 人人双人av | 91全国免费视频精品 | 亚洲熟女少妇一区二区 | 日本激情在线视频www | 亚洲精品第一国产综合高清 | 色男人窝网站聚色窝 | 国内精品久久久久影视 | 亚洲国产精品热久久 | 插b内射18免费视频 插逼网站 | 国产亚洲av片a区二区三区 | 国产成人精品视频一区二区不卡 | 中文字幕人妻系列乱码 | 无码视频aⅴ在线观看 | 99久热re在线精品视频 | 国产成人自拍精品视频 | 深夜福利视频大全在 | 亚洲国产高清 | 国产欧美日韩一区二区三区蜜桃 | 91免费视视频在线观看 | 国产精品福利电影一区二 | 国产乱了真 | 99国产综合亚洲精品 | 国产高清亚洲精品26u | 日韩精品一 | 亚洲第一页在线视频 | 国产91福利在线精 | 精品无码av一区二区三区不卡 | 97香蕉超级碰碰碰久久兔费 | 亚洲欧美日韩一区在线观看 | 亚洲欧美成人久久综合中文 | 日韩人妻无码精品久久 | 91se在线看片国产免费观看 | 亚洲最无码专区 | 91传媒秘入口 | 另类欧美综合 | 欧美熟妇性饥渴在线观看 | 精品国产亚洲第一区二区三区 | 精品综合 | 精品欧美国产一区二区三区不卡 | 91精品伊人久久久大香线蕉91 | 国产午夜福利不卡在线观看 | 中文字幕在线看aⅴ无码 | 精品无码专区免费播放 | 国产欧美日韩在线播放 | 国产一级婬片a免费播放口 国产一级婬片a片aaa毛片小说 | 人澡人澡人澡人澡91 | 在线播放国产一区二区三区 | 成人自拍一区 | 日韩欧美国精品一区二区三区 | www国产无 | 国产一级黄片av毛片 | 少妇人妻在线 | 日韩av高清无码 | 国产一级成aⅴ人片在线观看 | 欧美一级在线播放 | 成年女人毛片免费观看中文 | 精品国产鲁一鲁一区二区更新时间 | 欧美噜噜久久久xxx 欧美乱大 | 国产不卡视频在线观看 | 欧美亚洲自拍日 | 国产欧美va欧美va香蕉在线观看 | 亚洲成av人片在线观看www | 欧美性爱视频观看 | 中文字幕无码一区在线 | 国产精品国产名人在线 | 日韩人妻 | 91国精产品秘 | 91九色国产视频 | 亚洲欧美视频在线播放 | 国产成人精品一区二三区 | 亚洲av女人的天堂在线观看 | 国产精久久一区二区三区 | 日韩不卡高清无码人妻 | 99久久免费精品国产免费高清 | 三级片在线观看午夜av | 国产一区二区精品久久呦 | 精品久久国产字幕高潮 | 99国产这里有精品视频2025 | 亚洲中文字幕无码 | 国产欧美日韩综合精品一区二区三 | 国产精品秘麻豆免费版下载 | 成年黄页网站大全免费 | 色视频在线观看 | 国产成人高清 | 在线免费观看国 | 亚洲第一区精品久久久久 | 少妇综合久久中文字幕 | 精品丰满欧美一区二区三区 | 国产99对白在线播放 | 日本精品高清一区二区97伦理电影 | 精品aⅴ免费 | 91麻豆国产福利精品 | 亚洲精品偷拍区偷拍无码 | 日产国产精品亚洲系列 | 国产丝袜在线精品丝袜动漫板 | 中文国产高清综合乱色视频在线播放 | 国产成人亚洲精品无码h在线 | 91免费视频观看 | 亚洲欧美日韩漫画 | 99热这里只有精品热 | 91原创在线观看 | 国产麻豆一精品一av一免费软件 | 国产99视频在线观看九九免费视频 | 午夜福利无遮挡十八禁视频 | 色夜在线网站 | 国产导航 | 欧美日韩一卡2卡3卡4卡国色天香 | 无码性午夜视频在线观看 | 国产v精品成人免费视频71pao | 国产欧美日韩综合精品二区 | 亚洲中文字幕码在线电影 | 亚洲成a人片77777国产 | 婷婷一区二区三区网站 | 午夜a级理论片在线播放2025 | 色男人窝网站聚色窝 | 国产成人av乱码在线观看 | 香蕉黄色视频 | 一区二区免费视频中文乱码 | 精品一区二区久久久久久久网站 | 国产精品无码无在线观看 | 激情五月色综合国产精品 | 亚洲va综合va国产产va中文 | 精品日本亚洲18 | 国产成人一区二区三区在线观看 | 国产一级特黄大片在线观看 | 亚洲av无码一区二区三区在线观 | 欧美日韩免费专区在线观看 | 免费无码av片在线观看中文 | 成人黄色网站·大全 | 午夜一区二区免费福利麻豆 | 亚洲午夜成人精品无码 | 欧美日韩国产一区二区精品合集 | 91成人黄色视频在线观看 | 国产精品日韩欧美久久综合 | 亚洲中文字幕无码久久 | 在线a级毛片无码免费真人 在线a精品一区二区 | 国产精品传媒99一区二区 | 国产在线拍偷自揄拍精品 | 99久久精品国产区二区三区日韩 | 少妇大叫太大太爽受不了 | 日韩久久久精品中文字幕 | 免费无遮挡又黄又爽网站 | 亚洲成av人片在www色猫咪 | 高清一区二区三区尤物 | 日韩中文字幕东京热 | 日韩毛片一级在线观看 | 国内91视频亚洲毛片在线看 | 亚洲熟女精品一区二区成人 | 亚洲精品无码成人片久久 | 国产色欲av精品一区二区 | 婷婷中文视频在线 | 久久国产91成人免费网站 | 一区二区三 | 亚洲午夜久久久久中文字幕久 | 亚洲伦理精 | 亚洲av天天做在线观看 | 国产成人久久精品二区三区 | 国产亚洲综合精品一区二区三区 | 福利姬液液酱喷水网站在线观 | 午夜无码国产理论在线 | 国产成人亚洲综合色 | 国产一级精品成人大片综合高清不卡 | 欧美精品+在线播放 | 亚洲国产成人久久精品网站 | 欧美日韩国产精品一区二区三区 | 国产成人av在线亚洲天堂在线观看 | 亚洲av性色在线观看 | 久久97精品久久久久久久不卡 | 亚洲欧美精品伊人久久 | 精品久久无码中文 | 免费一区二区福利视频在线 | 91污视频在线观看 | 中文字幕 | 久久99热狠狠色精品一区 | 精品无人区乱码1区2区3区在线 | 91久久国产口精品久久久久 | 国产精品成人av无码久久 | 美奶福利视频一区二区三区 | 精品在线视频播放 | 日本无遮挡真人祼交视频 | 高跟丝袜 | 日韩伦理片 | 中文国产高清综合乱色视频在线播放 | 国产乱老熟视频乱老熟女51 | 国产精品观看视频免费完整 | 欧美人体一区二区视频 | 波多野结衣aⅴ在线 | 国产内地激情精品毛片在线一 | 日本一本免费一二区 | 国产人成精品综合欧美成人 | 亚洲成av人片 | 亚洲精品中文字幕无码久久久久久 | 国产精品66福利在线观看 | 国产激情视频在线观看的 | 色诱久久av| 国产精品日韩免费观看 | 果冻传媒tc中字 | 国产成人午夜福利电 | 国产一道精品视频一区二区三区 | 日韩精品在线第二页 | 国语对白刺激精品视频 | 羞羞影院午夜男女爽爽 | 91麻豆精品国产自产在线 | 精品少妇ay一区二区三区 | 精品日韩欧美一区在线播放不 | 97se亚洲国产综合自在线尤物 | 国产精品亚洲电影久久成人影院 | 极品美女国产精品免费一区 | 国产日韩欧美综合 | 91嫩草国产 | 精品久久久久久无 | 97香蕉超级碰碰碰久久兔费 | 精品久久久久精品亚洲av | 国产ts在线 | 国产精品午夜 | 精品久久久无码人妻中文字幕 | 国产自产一区二区三区视频在线 | 激情综合五月天 | 欧美午夜福利电影a在线 | 欧美视频一区 | 国产精品亚洲a∨天堂不卡 国产精品亚洲av高清二区 | 色噜噜成人综合网站 | 午夜成人a片精品视频免费观看 | 国产在线aa视频免费观看 | 欧美性在线播放 | 97久久超碰成 | 国产综合久久99久久 | 91孕妇精品一区二区三区 | 亚洲日韩精品a∨片无码不卡 | 99久久网站| 四虎影视在线观看2413 | 91果冻传媒官网 | 91香蕉国产线在线观看免费网友评价 | 亚洲超碰97无码中文字幕 | 国产福利萌白酱精品tv一区 | 精品久久久久国产免费 | 亚洲熟妇无码av不卡在线播放 | 国产制服丝袜在线无码 | 无码专区午夜福利在线观看 | 色综合久久88色综合天天 | 日韩免费一区二区人妻丝袜 | 丝袜制服第一页 | 亚洲综合无码精品一区二区三区 | 国产超碰人人做人人爽www | 麻豆文化传媒精品1区2区3区 | 亚洲av综合| 日韩一品在线播放视频一品免费 | 日本特色特黄久久久久久 | 午夜成人理论无码电影在线播 | 精品一二三区免费看 | 白浆免费视频国产精品视频 | 国产高潮精品久久av无码 | 91桃色a片无限免费看 | 色一情一乱一乱一区91av | 亚洲视频一 | 亚洲国产成人精品女人 | 日本高清不卡中文字幕网 | 欧美日韩国产高清在线 | 99久久综合狠狠综 | 国产精品观看 | 精品大全中文字幕 | 91超碰在线| 精品久久久久久久久中文字幕 | 欧美日韩高清在线观看一区二 | 亚洲成av人片无码不卡 | 三年片免费观看大全 | 99re免费视频国产在线播放 | 欧美日韩不卡合集视频 | 人妻精品久久无码区 | 成年在线观看免费人视频 | 成年在线观看免费人视频 | 国产真实强奷网站在线播放 | 亚洲精品乱码久久久久久不卡 | 亚洲av无码一区二区三区在线播放 | 91大神精品视频 | 欧美激情一区二区三区高清视 | 91精品一区二区三区在 | 亚洲精品国产综合久久一线 | 国产一级黄片av毛片 | 苍井空亚洲精品aa片在线播放 | 国产欧美日韩va另类 | 99久久香蕉国产线看观香 | 午夜影院a级毛片 | 成人免费理论片 | 国产丝袜调教视频免费的 | 国语自产精品视频 | 91九色在线播放 | 日本高清色视频www 日本高清视频 | 亚洲不卡无码av中文字幕 | av无码精品一区二区三区宅噜噜 | 一区二区三区a级毛片 | 91香蕉短视频 | 无遮挡又黄又刺激又爽的视频 | 国内精品久久久久久不卡影院 | 国产一级做a爰片在线看免费 | 中文字幕日本最新乱码视频 | 国产成人精品三级麻豆 | 日本一道本不卡免费播放 | 国产精品无码大片在线观看 | 97视频在线观看精品 | 日韩一区二区中文字幕 | 东京热人妻无码一区二区av | 91国内自产| 国产美女久久精品香蕉69 | 亚洲永久无码永 | 亚洲成人啦啦啦大 | 91精品一区国产高清在线gif | 午夜福利免费0948视频 | 精品伦精品一区二区三区视 | 日韩福利在线观看 | 东京热人妻系列无码专区 | 国产亚洲精品久久久999功能介绍 | 精品与欧美交牲久久久久 | 91无码国产福利在线观看 | 久久www免费人成看片入口 | 国产乱老熟视频乱老熟女51 | 欧美又粗又大又爽又色a片 欧美又粗又大又爽又色片 欧美又大 | 国产白丝丝高跟在线观看 | 亚洲av日韩精品久久久久久 | 亚洲熟妇无 | 妖精色av无码国产在线看 | 国产国语一级毛片全部电影 | 色欲久久久中文字幕综合网 | 99久久国产热无码精品免费久久久久 | 91在线| 国产三级精品三级男人的天堂 | 国产在线视频不卡一区二区 | 国产超级va在线观看视频 | 亚洲免费人成视频在线观看 | 91色伦在色在线播放 | 中日韩国 | 日产精品久久久久久久蜜 | 国产一级做a爰片久久毛 | 精品国产91乱码一区 | 少妇精品揄拍高潮少妇 | 精品曰韩av专区一区二区 | 国产精品白丝jk黑袜喷水视频 | 国产精品亚洲а∨天堂免下 | 一区二区三区av波多野结衣 | 丰满的瑜伽老师 | 国产精品亚洲色婷婷99久久精品 | 97se狠狠狠狠狼亚洲综合网 | 91网址在线播放 | 成人拍拍拍免费视频网站 | 亚洲av无码不卡久久 | 在线一区国产 | 丝袜灬啊灬快灬高潮了av | 在线一区二区日本欧美 | 国产精品1区二区. | av成人在线观看 | 国产午夜| 亚洲麻豆精品 | 国产勉费av网站 | 丰满少妇高潮惨叫久久久 | 国产午夜亚洲精品三区 | 妖精av无码成人精品区在线 | 日本高清中文字幕高清在线 | 免费无码国产白丝视频 | 日韩成人免费观看在线 | 无人影院手机版在线观看免费 | 另娄专区欧美制服在线亚洲欧 | 精品国产品国语在线不卡 | 国产午夜无码精品免费看粉 | 亚洲午夜精品a片一区三区无码 | 91桃色午夜福利国产在线观看 | 亚洲无线一二三四区手机 | 精品国产一区av天美传媒 | 成年影院 | 国产高清在线 | 国产无套护士精品毛片 | 亚洲精品白浆高清久久久久久 | 国产免费人成在线观看视频 | 国产一级做a爰片久久毛片男 | 99九九精品国产高清自在线 | 国产一区二区三区精品久久 | 99精品国产在热久久无毒 | 丰满的瑜伽老师bd三级 | 亚洲欧美日韩精品久久 | 成年女人免费视频播放7777 | 国产精品自产拍在线观看中文 | 狠狠做五月深爱婷婷做完 | 亚洲av日韩在线播放 | 精品一区二区三区在线观看视频 | 国产成年人免费视频 | 国产精品视频永久免费播放 | 国产在线不卡 | 香蕉久久夜色精品国产app | 日韩精品一区中文字幕在线 | 一区二区三区精品黄色影院 | 波多野结衣高潮颠抖不停 | 欧美亚洲精品中文字幕乱码免费 | 国产福利精品视频 | 办公室爆乳女秘 | 午夜理理伦电影a片无码 | 亚洲精品无码成人aa | 91久久国产成人免费网站 | 色视频综合无码一区二区三区 | 东京热久久精品 | 国产香蕉视频上线免费 | 精品一区二区三区在线观看 | 国产精品黑丝 | 日本三级a∨在线观看 | 成年黄页网站大全免费 | 色综合欧美在线视频区 | 国产黄色视频免费在线观看 | 一级无码片中文 | 色综合欧美在线视频区 | 国产欧美精品久久三级 | 亚洲日韩国产二区无码 | 精品女视 | 欧洲美熟女乱又伦av色欲 | 精品毛片久久久精品毛片 | 91短视| 国产精品免费看久久久无码 | 亚洲一区二区三区在线观看网站 | 福利一区二区三区视频在线观看 | 精品成人av一区二区三区 | 欧美精品系列一区二区 | 亚洲a∨精品一区 | 波多野结衣国产区42部 | 99久久久精品综合 | 国产口爆吞精在线观视频 | 精品国产一区二区三区四不卡在线 | 一区二区三区免费视频网站 | 最新国产资源片在线观看 | 麻豆国产尤物av尤物在线看 | 日韩精品在线第二页 | 日本高清www | 精品一区二区三区在线 | 日本xxx片免费高清在线 | 国产日产欧洲无码视频 | 国产成人精品一区二三区在线观看 | 日韩乱码人妻无码中文 | 无码色av一二区在线播放 | 天天爱天天做天天爽夜夜揉 | av一级黄片激情a级 av一级午夜无码久久精品 | av无码久久久久不卡免费网站 | 国产爆乳美女娇喘呻吟 | 激情国产白嫩美女在线观看 | 国产在线观看高清视频黄网 | 国产免费一级精品视频 | 日韩a优精品在线观看 | 无码毛片一区二区三区本码视 | 日日摸夜夜摸狠狠摸婷婷 | 91香蕉国产在线观看免费永久 | 国产草草视频 | 高清无码一区波多野结衣x99av | 熟女少妇av一区二 | 91视频免费看无限看下载 | 亚洲产精品va在线观看 | 不卡高清av手机在线观看 | 韩剧tv| 午夜无码影片 | 国产精品无码无卡在线播放 | 天天人人综合网7799日韩 | 九九国产精品国产一区二区 | 9久久99久久久 | 国产在线98福利播放视频免费 | 在线精品国精品国产尤物 | 在线天堂8高清版在线观看 在线天堂官网 | 国产精品无码久久久久久久久久 | 日本中文字幕一区在线观看 | 精品丰满欧美一区二区三区 | 超碰aⅴ人人做人人爽 | 色欲国产av | 国产成人精品777 | 无码中文 | 人妻aⅴ无码一区二区三区 人妻av区波多野结衣 | 性色av一区二区三区 | 91精品国产高清久久福利 | 亚洲国产中文综合一区第一页 | 亚洲精品国产av成拍色拍 | 91在线无精精品秘?入口 | 国产激爽大片高清在线观看 | 国产av国片精品jk制服 | 国产精品嫩草影 | 色欲欧美精品一区成人精品 | 国产一区二区三区精品视频 | 白丝捆绑m吊带开腿调教 | 亚洲成熟丰满熟妇高潮xxxxx | 欧美深夜福利网站在线观 | 国产日韩精品一区二区在线观 | 亚洲av无码一区二区三区在线 | 成人男女av大片在线观看 | 91传媒秘入口 | 国产精品三级在线观看无码 | 四虎影视在线观看2413 | 国产午夜精品区 | 国产日韩精品一 | 精品一区二区久久久久久久网站 | 国产人妻人伦精品九色威尼斯商人 | 国外免费人妖网视频在线观看 | 国产一本视频在线播放 | 日本最新最全无码不卡免费 | 亚洲精品中文字幕不卡 | 国产一级婬片a片aaa毛片小说 | 国产视频一区二区 | 少妇免费三级在线观看 | 亚洲资源站中文在线丝袜 | 欧美人与动牲交 | 亚洲欧美v国产一区二区 | 无码人妻精一区二区三区 | 亚洲日韩一二三区 | 人妻少妇久久中文字幕一区二区+ | 一级无码片中文 | 欧美在线观看免费人成 | 亚洲欧美另类日韩一区 | 国产精品视频久久久久 | 国产手机在线播放 | 欧美成人高清在线播放 | 国产女人叫床高潮大片 | 亚洲成a人片在 | 少妇高潮毛片免费观看a片 少妇高潮毛片色欲ava片 | 欧美日韩精品一区二区三区高清视频 | 亚洲av无码一区二区三区在线播放 | 午夜a级理论片在线播放不卡 | 无码精品a∨在线观看无广告 | 国产手机在线αⅴ片无码观看 | 少妇愉情理伦片丰满丰满午夜 | 午夜成人 | 丰满的瑜伽老师bd三级免费全集 | 亚洲aⅴ三级一区二区 | 色吊丝中文字幕 | 黑人大战亚洲女在线播放 | 亚洲成av人片在一线观看 | 国产精品日本亚洲欧美 | 欧美激情一区二区在线观看不 | 精品无码国产不卡在线观看首 | 亚洲成a人片在线观看国产 亚洲成a人片在线观看老师 | 欧美成人伊人久久中文字幕 | 精品国内自产拍在线观看网站 | 91se在线看片国产免费观看 | 国产大胆露出精品视 | 黄色网页大全在线免费观看啊啊啊啊 | 亚洲va中文字幕无码毛片 | 亚洲日韩欧洲无码v夜夜摸 亚洲日韩手机在线专区 | 欧美猛交喷潮在线播放 | 亚洲精品无码久久久久冒白浆 | 亚洲国产精品白丝观看 | 国产在线无码视频一区 | 91手游网 | 亚洲毛片不卡av在线播放一区 | 日韩欧美在线播放 | 在线天堂新版资源www在线 | 免费无码又爽又刺激视频在线 | 亚洲av成人无码一二三在线观看 | 狠狠色综合久久丁香婷婷 | 韩国三级a视频在线观看 | 无码人妻一区二区三区av | а√天堂资源官网在线资源 | 亚洲男人的天堂一区二区 | 亚洲第一区国产一区二区精品 | 99热这里只有精品第一页 | 国产一区三区二区中文在线 | 国产欧美综合在线一区二区三区 | 精品偷自拍另类在线观看 | 91精品久久久老熟女九色91 | 69日本精品成人无码视频 | 欧美久久久久精品一区 | 人人妻人人澡人人爽人人精品97 | 日韩av无码中文一区二区三区 | 激情综合五月丁香 | 亚洲精品日韩 | 精品国产乱子伦一区二区三区 | 丰满人妻被公侵犯中文电影版 | 精品国产成人三级在线观看 | 色婷婷91| 中文午夜乱理片无码av | 97精品| 国产精品一区电影 | 99久久成人国产精品免费 | 国产a久久精品一区二区三区 | 亚洲最大av无码网址 | 精品国产乱码久久久久久毛片 | 一区二区三区国产无码 | 91麻豆极品在线观看 | 99在线精品国自产拍中文字幕 | 国产a视频免费观看不卡 | 国产日本精品在线观看 | 日韩不卡毛片av免费高清 | 人妻少妇偷人系列 | 国产精品不卡a∨在线 | 麻豆91在线 | 91桃色安卓版下载 | 日本欧美亚洲综合久久久 | 色欲av蜜臀av久久浪潮av | 国产毛片久久国产 | 亚洲大码av在线播放 | 亚洲精品国精品久久99热 | 97超清在线观看 | 国产精品嫩草影院av | 国产综合精品一区三区 | 成年免费大片黄在线观看岛国 | 国产成人无码av | av在观线观看男人的天堂 | 亚洲av午夜福利精品一区二区三 | 精品动漫中文字幕一区二区三区 | 99成人国产精品视频 | 韩国三级在线播久 | 喷潮a片免费观看 | 成人黄色网址 | 狠狠精品干练久久久无码中文字幕 | 亚洲中文字幕无码亚洲成a人片 | 狠狠噜天天噜日日噜无码 | 少妇高潮流白浆在线观看 | 91在线无码精品秘入口色欲 | 国产乱人伦在线播放 | 国产福利一区二区三区在线 | 91在线网站 | 欧美人与禽zoz0性伦交 | 狠狠干导航 | 欧美人体一区二区视频 | 最新欧美动漫大全免费在线观看 | 亚洲精品天堂成人片 | 精品久久无码中文字幕一区 | 日本乱码伦午夜福利在线 | 国产亚洲精品久久久久久无几年桃 | 成人免费无码一区二区三区 | 亚洲欧美日韩在线香蕉 | 欧美日韩在线观看免费 | 性欧美大战久久久久久久 | 国产亚洲综合 | 麻豆国产午夜福利片在线观看 | 日本av一区二区三区视频 | 国语自产偷拍精品视频 | 毛片在线观看视频 | 亚洲欧美日韩漫画 | 国产亚洲视频在线观看 | 精品国产美女福到在线直播 | 成年日本h片免费网站 | 欧美精品久久一区二区三区 | 日韩大片高清播放器大全 | 国产午夜精品一区二区三区不卡 | 精品国产国产自在线观看 | 日本中文字幕一区二区有码在线 | av网址导航精品 | 国产九九精品 | 91亚洲精品无码久久久久 | 在线观看午夜亚洲一区 | 国产欧美亚洲精品第二区首页 | 熟女少妇av一区二 | 在线观看片免费人成视频播放 | 韩国大尺度电影 | 在线看视频 | 91大神在线精品网址 | 亚洲国产美女主播在线观看 | 精品国产白嫩美女在线观看 | av福利院 | 国内最真实的xxxx人伦 | 国产拍精品亚洲国产高清 | 最新麻豆日韩国产传媒 | 中文字幕人妻少妇伦伦伦 | 黄网站在线观看高清免费 | 香蕉视频久久精品 | 中文字幕韩日精品 | 国产三级电影免费看 | 99久久综合狠狠综合久久 | 精品久久久爽爽久久久av | 午夜成人网站在线观看 | 97狠狠干五月天 | 精品久久久一区无 | 99久久精品日本一区二区免费 | 黄色a级国产免费大片 | 97久久天天躁夜夜躁狠狠 | 日韩国产变态另类欧美 | 99久久婷婷国产综合精品草原 | 日韩av一区二区在线电影 |