欧美日韩亚-欧美日韩亚州在线-欧美日韩亚洲-欧美日韩亚洲第一区-欧美日韩亚洲二区在线-欧美日韩亚洲高清精品

金喜正规买球

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
国内精品自线一区二区三区 | 国产精品亚洲片在线观看不卡 | 麻花豆传媒剧国 | 亚洲无线码一区国产欧美国日 | 日韩精品极品视频在线观看免费 | 国产+日韩+另类+视频一区爱 | 日本免费高清一本视频 | 欧美精品v日韩精品v韩国精品v | 区二区免费网站 | 免费99精品国产 | 久艹伊人精品综合在线 | 免费在线观看最新高清电影 | 国产免费看插插插视频 | 国产直播视频在线播放 | 国产亚洲精品国产福利 | 欧美乱伦视频激情浪潮密臀 | 国产原创露脸视频在线观看 | 99精品视 | 韩国三级香港三级日本三级la | 精品国产免费一区二区三区四区 | 最新好看的电视剧免费在线观看 | 丰满大码熟女在线播放 | 中文字幕视频区 | 成a人片在线观 | 国产高清在线精品一区小说 | aⅴ另类| 99视频在线精品66 | 97人伦色伦成人免费视频 | 亚洲成ⅴ人片乱码色午夜 | 亚洲精品视频免费 | 欧美高清一区二区三区 | 国产色a在线观看 | 国产不卡视频一区二区三区 | 国产男同在 | 欧美日韩大尺码免费专区 | 综合精品一区 | 亚洲欧美另类在线区 | 日韩熟女高清精品专区 | 777国产偷窥盗摄精品原味 | 亚洲国产精品午夜伦不卡 | 真实国产乱子伦精品 | 欧美日韩中文字幕日韩欧美 | 国产精品丝袜高跟鞋 | 免费最新电视剧 | 2025国产亚洲日韩在线 | 吖v国产在线高清播放 | 欧美激情国产精品视频一区二区 | 国产在线观看国语对白 | 亚洲精品国产第一区第二区国 | 国产一区欧美一区二区 | 欧美第一区| 天美传媒果冻传媒国产电影 | 真正国产人妖ts系列 | 日韩欧美一区 | 国产一区二区三区四区五区 | 欧美野人三级经典在线观看 | 日韩亚洲国产女同二区三区 | 国产在线观看不卡免费高清 | 国产精品视频免费网站 | 国语自产精品视频在线区 | 色与欲影视天天看综合网 | 亚洲午夜国产精 | 国产乱码精品一区二区三 | 国产午夜亚洲精品不卡在线观看 | 日韩欧美一区二区高清视频 | 国产大道香蕉大在线 | 国产福利自产拍在线观看 | 国产又粗又爽视频 | 老妇喷水一区二 | 国产一区二区三四区 | 91免费观看 | 亚州国产精品一线北 | 亚洲人成在线不卡网 | 国产精品大片在线看 | 女の乳搾りです在线观看 | 亚洲免费一区二区 | 亚洲国产福利成人一区二区 | 国产欧美日韩一区二区三区在线 | 亚洲一区日本一区 | 国产一级淫片a免费播放口 海量热播电视剧手机电影在线观看 | 精品成人大胸美女视频在线播放 | 丰满女人又爽又紧又丰满 | 99免费精品 | 成·人午夜在线观看 | 亚洲精品国产自在现线最新 | 国产一区二区 | 免费一级国产大片 | 在线观看亚洲精品福利片 | 国产免费高清69式视频在线观看 | 成人免费高清观看在线 | 精品国产福利第一区二 | 亚洲欧美一区二区三区日产 | 91精品国产品国语在线 | 亚洲第一影院中文字幕 | 永久免费a | 国产精品香蕉在线的人尹人 | 欧美中文字幕在线视 | 中日韩产精品1卡二卡三卡 亚洲中文字幕乱碼在线观看 | 日本有码中文 | 在线播放国产精品三级 | 免费观看男女性恔配视频 | 全部免费的电视剧大全 | 在线精品视 | 亚洲国产精品va在线播放 | 一区二区三区在线观看高清视频 | 国产高清在线观看视频 | 国产精品美女网站在线观看 | 日本亲与子 | 欧美私人午夜影院 | 精品国产拍国产天天人 | 91欧洲在线视精品在亚洲 | 日本一二线不卡在线观看 | 2025最新电影、电视剧、综 | 情趣五月天| 欧美综合视频在线 | 在线欧美精 | 亚洲一区日韩高清中文字幕亚洲 | 污软件不收费软 | 啪啦完整高清观看视频 | 国产精品美女视视频 | 伊人网视频在线观看 | 亚洲日韩欧美国产高清αv 亚洲欧美 | 五月天精品视频在线观看 | 成人激情电影 | 国产爱情岛在线观看视频 | 国产综合成人一区二区三区电影院 | 91免费国产在线观看尤物 | 好看的电视 | 成a人片在线观看中文 | 精品福利一区二区三区免费视频 | 深夜激情网| 精品+在线+国产手机 | 日本免费不卡高清网站视频 | 日韩种子| 九九视频国产免 | 国产欧美一区二区综合 | 国产亚洲精品线 | 玖玖综合 | 国产精品福利自产 | 天天一区| 一个人看的www视频免 | 一级特黄大片欧美99 | 尤物视频在线免费观看 | 国产日韩精品一区二区三区在线观 | 亚洲国产区中文在线观看不卡 | 一二三四视频免 | 国产伦精品一区二区三区免 | 秋霞网国产 | 亚洲中文波霸中文字幕 | 国产精品丝袜亚洲熟女 | 国产一级a毛一级a看免费视 | 图片区小说区激情区偷拍区 | 在线播放一区二区 | 在线观看91精品国产hd | 国产精品爱的在线线免费观看 | 国产高清国产精品国产专区 | 欧美激情视频一区二区三区免费 | 免费激情网站国产高清第一页 | 免费看美女脱了全身衣服直播 | 最新日本一道免费一区二区 | 日产精品卡二卡三卡四卡乱码视频 | 在线免费观看区一区二 | 国产亚洲精品一二三区 | 国产在线精品成人一区二区 | 国产在线成本人视频摸腿 | 日韩欧美一区二区三区在线观看 | 国产一区二区在线播放女友 | 乱vodafo| 免费视频大片在线观看 | 日本亚洲精品午夜 | 亚洲欧洲另类春色 | 大地影院mv高清在线观看免费 | 亚洲一线二线三线免费视频 | 专区中文字幕视频专区 | 亚洲激情中文 | 国产乱码精品一品二品 | 成人欧美一 | 99玖玖爱在线精品免费观看 | 你懂得视频在线 | 男女拍拍拍免费视频 | 视频试看 | 欧美在线专区 | 国产末成年| 热门影视大全 | 国产视频高清在线观看 | 欧美性爱超长大吊网站 | 亚洲人成色77777在线观看 | 国产一级做a爱免费 | 2025国产精品极品色在线 | 人成午夜视频在线观看 | 2025国产精品自在线拍国产 | 91人人澡人 | 国产目拍亚洲精品二区 | 女视频网站 | 人人天天夜夜曰曰狠狠狠肉感 | 国产在线ts人妖免费视频 | 亚洲国产一区在线观看视频 | 亚洲精品亚洲字幕 | 国产精品盗摄视频 | 日韩精品在线视频 | 又粗又黄又猛又爽大片免费 | 疯狂动物城在线观看 | 国产高清晰在线播放 | 国语自产精品视频一区二区 | 日本欧美一区二区三区在线播放 | 国产极品视频 | 亚洲国产精品福利片在线观看 | 在线看国产一区二区三区 | 三三影视 | 国产午夜福利不卡在线观看 | 亚洲欧美日韩国产综合专区 | 午夜三级a三级三点 | 中文字幕国产在线观看 | 成人欧美日韩一区二区三区 | 不卡视频一区二区 | 一级在线免费观看 | 国内自拍中文欧美 | 每日更新国产精品视频 | 欧美一级在线全免费 | 国产在线精品国自产拍影院 | 99在线观看视频免费精品9 | 国产农村妇女特 | 欧美不卡 | 国产在线国偷精品产拍 | 国产日产成人免费视频在线观看 | 视频二区三区国产情侣在线 | 亚洲国产综合另类视频在线观看 | 亚洲综合色自拍一区 | 日韩亚洲国产女同二区三区 | 露脸美女另类 | 大陆老熟女洗澡性视频tube | 福利免费0948视频 | 亚洲人人夜夜 | 欧美亚洲综 | 国内精品自在自线在免费 | 欧美精品一区二区三区视频 | 探花视频在线 | 免费视频 | 91免费在线观看 | 欧美、另类亚洲 | 精品免费囯产一区二区三区四 | 日韩欧美性爱视频网站翘臀 | 国产不卡视频一区二区三区 | 在线看片免费人成视频福利 | 经典偷窥 | 在线观看亚洲国产手机精品 | 国内性色精品视频 | 午夜三级中文在线观看 | 亚洲一区二区三区在线观看 | 欧美午夜一区二区三区 | 欧美一级高清片国产特黄大 | 日韩一区二区三区自拍偷拍 | а√天堂8资源中文在线 | 日日夜人人澡人人澡人人看免 | 国产二区三区 | 亚洲美女视频网 | 欧美日韩一区二区三区四 | 国产亚洲久一区二区 | 99热久re这里只有精品小草 | 亚洲国产精品午夜伦不卡 | 国产精彩香蕉在线视频 | 亚洲欧美日韩中文字幕二区 | 99久在线精品99re8 | 成人免费高清视频 | 99精品国产福利在线观看 | 亚洲精品自有码中文字 | 国产精品人成在线播放新网站 | 伊伊人成亚洲 | 欧美精品黄页在线观看2区 日本视频 | 伊人国产在线播放 | 亚洲一区国产 | 国产精品亚洲专区 | 亚洲无限 | 日韩在线a视频免费播放 | 色愉拍亚洲偷自拍 | 国产自产一区二区三区视频在线 | 国产乱xxⅹxx国语对白 | 妺妺窝人体色www看人体 | 日本不卡高清免费v日本 | 内地级a艳片高清免费播放 五月社区免费 | 国产精品玖玖 | 国内自拍视频一区二区三区 | 人人天天综合影院 | 午夜理论电影在线观看亚洲 | 排行榜电视剧全集手机免 | 国产99视频精品免费看 | 香蕉丝瓜 | 97碰成人国产免费公开视频 | 啦啦啦视频 | 婷婷亚洲综合一区二区 | 两性午夜刺| 国产欧美日韩一区二区三区视频 | 日韩伦理一区二区精品视频 | 亚洲成亚洲成网 | 另类亚洲小说图片综合区 | 国语在线看免 | 经典国产精品 | 精品国产福利盛宴在线观看 | 午夜福利不卡片在线播放免费 | 又粗又大又硬又爽的免费视频 | 91日本在线视 | 一个视频在线观看免费 | 国产精品高清一区二区三区 | 亚洲网站在线观看人成 | 午夜成人影视 | 国产高清中文 | 日韩在线观看免费 | 午夜成人爽爽爽视频在线观看 | 国产精品成熟老女人 | 91丝袜精品诱惑在线观看 | 2025亚洲精品极品色在线 | 性欧美极品xxxx欧美 | 国产欧美精品国产国产专区 | 国产午夜福利在线播放 | 妺妺窝人体色www在线观看 | 亚洲一区日韩高清中文字幕亚洲 | 欧美一区区三区四区五区在线观看 | 欧美日韩在线精品一区二区 | 国色天香天天影院综合网 | 国产va精品免费在线观看 | 欧美私人午夜影院 | 亚洲国产精品福利片在线观看 | 国产一级一片免费播放 | 日本va欧美va精品发布 | 亚洲卡一卡二卡三乱草莓 | 欧美一区二区三区在线播放 | 人人狠人人透人人爱 | 网站在线观看 | 亚洲国产高清在线不卡 | 免费激情网站国产高清第一页 | 青草青草久热精品视频在线播放 | 亚洲痴女| 亚洲欧美日韩一区二区在线观看 | 免费看黑人| 国产亚洲精aa在线观看 | 色五月激情五月综合网五月天 | 中文字幕日本精品一区二区三区 | 精品亚洲成a人在线看片 | 日本动漫精品一区二区三区 | 天堂草原影院电视剧 | 国产一区高清在线欧美 | 亚洲无线 | 又粗又黄又猛又爽大片免费 | 亚洲va国产日韩欧美精品 | 亚洲日韩欧美一区二区三区在线 | 亚洲色大成网站www永久网站 | 色与欲影视天天看综合网 | 欧美一级爽快片婬 | 99国产清国产精品国产 | 婷婷综合尤物精品国产 | 最爽的乱淫视频国语对 | 国产乱码精品一区二区三区四 | 欧洲精品 | 熟女视频一区二区在线观看 | 色依依亚洲一区在线观看 | 亚洲人成高清在线播放 | 国产欧美一区二区三区不 | 国产精品福利在线观看免费 | 午夜片神马影院福利 | 极品女神 | 日韩在线一区二区三区免费视频 | 国产一级a毛一级a看免费视 | 亚洲aⅴ乱码一区二区波多野 | 自拍偷亚洲成在线观看 | 夜鲁鲁鲁夜夜综合视频欧美 | 亚洲日韩国产一本视频 | 国产偷国产偷亚洲高清人 | 自拍亚洲免费影视 | 国产精品自在线拍国产手机版 | 国产网友愉拍精品视频手机 | 国产福利电影一区二区三区 | 亚洲欧美日韩一区超高清 | 从后面进入嗯啊视频 | 国产精品亚洲精品爽爽 | 91精品国产免费网站 | 国产91青青成人a在线 | 国产人在线成免费视频 | 激性欧美在线播激性欧美 | 国产精品青草综合久 | 欧美日韩一区免费观看 | 国产精品污www一区二区三区 | 久插视频 | 日韩欧美综合在线制服 | 日本高清视频在线www色下载 | 国产午夜免费视频 | 中文字幕永久一区二区三区 | 三级国产国语三级在线2 | 津渝完整视频线上观看 | 丰满女人又爽又紧又丰满 | 三年片在线 | 亚洲精品国产福利 | 欧美精品视频在线免费观看 | 日本全部一级视频 | 亚洲日韩国产一本视频 | 热门电视剧追剧网站 | 韩国三级hd中文字幕电影天堂 | 国产在线精品一区二区高清不卡 | 免费午夜伦费影视在线观看 | 国产免费一区二区三区在线 | 亚洲电影在线免费观看 | 日本岛国在线观看网址 | 亚洲精国产一区二区三区 | 日韩经典一区 | 超级乱婬片国语对白 | 亚洲欧美国产国产综合一区 | 亚洲欧美日韩国产综合 | 国产在线精品国偷产拍 | 亚洲精品国产制服丝袜美腿 | 中文字幕在线观看国产 | 永久在线免费观看美女热比网站 | 欧美一级别 | 日韩一区二区三区四区 | 日本69sex护士 | 青青青爽国产 | 人人揉揉揉揉揉日日 | 亚洲狼人天堂 | 国产日韩欧美一区 | 午夜成人亚洲理伦片在线观 | 亚欧乱色国产精品免费视频 | 三级三级三级a级全黄 | 日韩高清在线观看不卡一区二区 | 中文字幕在线视频在线看 | 五月丁香六月婷婷综合网缴情 | 日韩国产欧美精品综合二区 | 国产一区二区三区四区五区 | 亚洲欧美日韩国产一区二区三区 | 97人人揉人人捏人人添电影 | 欧美一级特黄高清视频 | 国产欧美日本韩国另类 | 偷拍区清纯另类丝袜美腿 | 一级视频亚洲视频在线观看 | 999国内精品永久免费观看 | 国产一级a毛一级a在线观看 | 日韩欧美国产一区二区浪潮 | 久热这里只有精品无 | 字幕一区精品自拍 | 另类亚洲图区在线视频 | 亚洲精品第一国产综合精品 | 国产亚洲精品字幕在线观看 | 伊人色综合网 | 国产精选在线观看播放 | 国产一区二区日韩欧美在线 | 97视频精品全国免费观看 | 亚洲亚洲人成网站在线观看 | 欧美aⅴ激情视频 | 91成人| 老妇喷水一区二 | 中文字幕精品一区二区精品 | 丁香婷婷激情小说 | 美女视频黄的网站全免弗 | 日韩精品一区二区三区四区蜜桃 | 中文字幕亚洲一区二区va在线 | 中文字幕亚洲无限码 | 中国领先的综合视频网站 | 亚洲性人人天天夜夜摸 | а√天堂资源8在线官网在线 | 亚洲欧美国产国产一区二区三区 | 欧美日本国 | 天美麻花果冻苏蜜清歌 | 最新国产精品拍自在线播放 | 星空影院 | 最近2025年好看中文字幕视频 | 国产乱理伦片在线午夜观看 | 国产99视频精品免费观看9 | 日本最新在线观 | 国产一级特黄大片特爽 | 国产欧美日韩一区二区搜索 | 2025天天躁夜夜燥 | 得得啪在线视频观看 | a人妖亚洲| 99ri日韩精品视频 | 免费va人成视频网站全 | 午夜理论电影在线观看亚洲 | 日韩欧美中文字幕在线第一页 | 国产未成女一区二区三区 | 国产午夜福利短视频在线观看 | 精品一二三四区 | 国产综合精品国 | 亚洲一区在线播放蜜臀 | 国自产拍在线视频天 | 红桃影视成人免费 | 日韩欧美另类一区二区三区 | 新区乱码无 | 国产女学生破女初在线观看 | 正版高清视频在线观看 | 亚洲精品网址在线观看 | 免费视频精品一区二区三区 | 国产在线aⅴ精品91 丝袜线观看 | 久精品视频 | 欧美日本制服亚 | 嫩小槡bbbb槡bb | 视频在线观看播放免费 | 在线观看精品国产免费 | 一区二区在线观看 | 亚洲三级一区二区在线观看 | 韩国伦理电影在线观免费观看 | 日韩一级簧片 | 国产涩涩 | 国产在线观看 | 亚洲欧美精品一区二区三区四区 | 最新国产精品 | 一区二区三区网站 | 国产女人喷潮视频在线观看 | 中文字幕在线观看网站 | 在线精品91青草国产在线观看 | 91福利在线视频 | 日韩亚洲国 | 国产精品日韩一区 | 国产黄在线观看免费观看 | 国产操片 | 亚洲精品国产 | 91福利国产在线在线播放 | 国产精品亚洲二区在线播放 | 中文字幕亚洲欧美在线不卡 | 成人国产经典 | 国产福利在线观看永 | 国产女主播午夜福利在线观看 | 亚洲日本国产乱码va在线观看 | 日本黄页网站免费大全 | 亚欧国产一级在线免费 | 欧美毛多水多肥妇 | 亚洲欧美在线观看片不卡 | 欧美日韩一本到手机视频观看一区 | 2025年最新高清热播电影 | 亚洲vv秘码国产 | 两性色午夜视频免费国产 | 国产精品免费视频能看 | 亚洲欧美日韩高清综合678 | 国产su | 中文字幕在线免费专区 | 国产又粗又大又黄的视频 | 欧美另类视频在线观看 | 亚洲国产区中文在线观看不卡 | 99好久| 成人国产精品免费视频 | 欧美日韩在线观看区一二 | 蜜桃视频一区二区三区在线观看 | 制服丝袜亚洲中文综合 | 欧美乱妇激情在线播 | 中文字幕美日韩在线高清 | 成aⅴ人免费观 | 91视频网站| 国内精品手机在线观看视频 | 日韩欧美在线不卡 | 免费人成在线观看 | 国产h视频在线观看网 | 日韩v亚洲v欧美v精品综合 | 国精产品一区二区三区四区糖心 | 中文字幕免费播放 | 国产精品成人不卡在线观看 | 亚洲制服国产一区二区三区 | 免费大mm视频在线观看 | 国产极品翘臀在线观 | 亚洲国产天堂 | 亚洲精品一区二区国产精华液 | 欧美一区视频在线 | 欧美大片一| 成人国产精品免费视频不卡 | 精品一区二区视频免费看 | 日本国产欧美精品在 | 伦人伦xxx国产对白 香蕉香蕉国产片一级一级毛 | 亚洲精品老司机综合影院 | 欧美高清性色生活片免费观看 | 欧美日产欧美日产国产精品 | 国语自产一区第二页欧美 | 日韩国产中文字幕在线观看 | 在线观看视频导 | 91成人精品在 | 国产无内肉丝精品视频 | 一级理论片免费观看在线 | 精品国产一区二区三区2025 | 国产丝袜控视频在线观看 | 免费观看视频成人国产 | 午夜神器| 2025最新热门电视排行榜 | 国产日韩a视频在线播放视频 | 亚洲一区精品在线视频 | 91大神大战丝袜美女在线观看 | 流畅高清电视剧、电影、 | 337p日本欧洲亚洲大胆在线 | 亚洲人成aⅴ在线播放 | 午夜男女羞羞爽爽爽视频 | 国产又粗又猛又大爽又黄的视频 | 日韩亚洲| 老司机在线精品视频播放 | 欧美激情在线精品video | 成aⅴ人片在线观看蜜桃 | 亚洲国产欧美在线一区二区 | 91九色私密保健 | 亚洲小说欧美激情另类 | 国产鲁鲁视频在线观看免费 | 星光影院| 成人精品一区二区三区电影黑人 | 国产午夜福利电影免费在线观看 | 新版资源天堂中文 | 99在线观看免费 | 日韩精品一区二区三区蜜桃 | 老师脱了内裤让我爽了一夜 | 在线观看网站国产精品 | 国产日韩在线视频 | 欧美日韩一区二区成人午夜电影 | 欧美乱妇高清视频免欢看关 | 欧美亚日韩精品影视 | 午夜剧场 | 午夜男女爽爽影院在线 | 欧美一区二区在线观看视频 | 国精产品一区一区三区有 | 妺妺窝人体色www聚色窝 | 国产乱码一区二区三 | 亚洲欧洲精品一二三区 | 亚洲中文欧美日韩在线 | 日韩一二三区视频精品 | 欧美一区二区三区激情爽 | 精69xxx免费酒店 | 国产十欧美 | 亚洲日韩国产一区二区三区在线 | 亚洲国产精品尤物yw在线观看 | 真人祼交二十三式 | 亚洲精品视频免费观看 | 国产高清一区二区三区免费视频 | 国产精品一区二区三区四区五区 | 国产综合成人色产三 | 山东猎头| 亚洲免费体验区 | 99视频精品全部免费在线 | 国产国产人免费人成成免视频 | 国产精品日韩欧美一区二区三区 | 欧美激情视频一区二区三区免费 | 99在线精品国产不卡在线观看 | 思思99re5国产在 | 激情综合在线亚洲五月天 | 天天射天天爱天天射干 | 一区二区视频在线 | 在线观看免费 | 女视频精品免 | 奇米视频在线观看 | 日韩一区视频精品无高清在 | 亚洲精品国产精品乱码不卡√ | 轻点灬大ji巴大粗长了视频 | 91碰超免费观看 | 国产伦精品一区二区三区在 | 亚洲国产区男人 | 国内精品视频免费观看 | 国产精品日韩欧美一区2区3区 | 偷偷要色偷偷 | 精品日韩视频一区二区三 | 午夜福利精品一区 | 97视频专区| 91看片网站免费看 | 国产黄在线播放免费观看 | 成人国产一区二区三区精品 | 草莓视频污污 | 97精品视频| 一区免费视频 | 日本96在线精品视频免费观看 | 亚洲欧美中文日韩v在线 | 国产a∨天天免 | 国产国产人在线成免费视频69 | 亚洲国产一区二区在线观看 | 女男羞羞视频网站免费 | 九操中文字幕在线观看 | 国产精品蜜桃 | 生活片欧美在线 | 永久免费的污视频网站 | 国产精品ⅴa在线观看 | 日韩欧美一区二区三区四区 | 国产精品天干天干在线观看 | 国产乱子经典视 | 国产亚洲高清一区二区 | 免费人成视网站在线不卡 | 亚洲欧洲国产日产综合综合 | 污污污免费视频 | 日本在线日本 | 成人三级视频在线观看 | 成年人免费在线看的惊悚动作片 | 午夜亚洲国产理论片秋霞 | 一区二区亚洲精品国产片 | 一二三四 | 国产一区二区三区精品综合 | 在线观看亚洲人成网站 | 人摸人摸在线视频 | 天天色天天色 | 色综合欧美 | 日本乱偷 | 日韩欧美亚洲一区二区三区四 | 日本一区视频在线播放 | 凶猛办公室高清未删减 | 国产区精品视频 | 1024手机看片国产日韩欧美 | 国产日韩欧美第二页 | 国产精品香港三级国产 | 精品国产高清自在线一区二区三区 | 成人a级高清视频在线观看 91免费视频网站 | 天天被干免费观看视频 | 最新国产精品自在自线发布 | 天天影视色香欲综合网小说 | 精品区在线观看 | 中文字幕日本有码视频在线 | 国产一区二区精品久电影 | 国产中文字幕亚洲 | 欧美日韩中文字幕 | 国产主播在线观看网 | 国产在线一区二区三区不卡在线 | 最新国产福利在线观看精品 | 亚洲欧美综合视频 | 污污污污污污www网 午夜福利小视频400 | 亚洲无线观看国产高 | 又色又爽又黄的视频 | 国产午夜男女爽爽爽爽爽视频 | 动漫美女无 | 天天看片高 | 国产综合| 亚洲日产乱码一二三区别 | 国产男女猛视频在线观看 | 囯产精品宾馆在线精品酒店 | 国产又爽又黄 | 国产精品兄 | 日韩免费在线视频观看 | 在线中文字幕亚洲 | 精品国产女主播在线观看 | 国产亚洲成aⅴ人片在线观看 | 九九热精品在 | 欧美无极品在线观看 | 91秒拍国产福利一区 | 精品国产高清免费在线观看 | 国产一级特黄aa大片在线观看 | 欧美精品午夜一二三区 | 国产丶欧美丶日本不卡 | 影院在线播放 | www.一区二区三区在线 | 国产精品多p对白交换绿 | 99精品无| 日本毛x片免费视频观看视频 | 亚洲aⅴ无一区二区三区 | 国产亚洲精品成 | 国产精品午夜看片 | 精品国产一区二区三区亚洲 | 97国产综合色产在线视频 | 中文字幕永久在线日本高清dvd | 亚洲高清乱码午夜电影网 | 国产成自拍亚洲精品 | 人摸人爱视频 | 成人a大片高 | 免费观看国产一区二区三区 | 午夜国产精品视频一区 | 精品一区二区三区高清免费不 | aⅴ另类| 亚洲精品中文字幕码专区 | 6080欧美一区二区三区四区 | 中文文字幕文字幕亚洲色 | 亚洲国产成a人v在线观看 | 色男人在线电影视频网站 | 最近最新中文字幕 | 国产一区二区三区影院 | 国产98视频在线 | 欧美老年人草逼视频 | 精品国产日韩欧美一区 | 国产精品剧情一区二区在线观看 | 日韩影院| 亚洲午夜福利在线观看 | 亚洲的一区二区精品 | 国产在线观看精品一区二区三区 | 亚洲精品a∨在线国自产拍 露脸对白不带套在线播放 亚洲一级大片 | 国产一级在视频在线观 | 国产免费a视频 | 欧洲亚洲国产日韩综合一区 | 性感美女网站一区二区三区 | 96精品专区国产在线观看高清 | 99热视| 国产一级视频播放 | 免费在线| 日韩18未满禁止观看 | 日韩国产精品一区二区 | 欧美亚洲欧美日韩中文二区 | 国产精品太长太粗太 | 亚洲人成在线观看网站播放 | 国产乱人视频在 | 国产宅男宅女在线观看 | 亚洲国产天堂 | 亚洲欧洲综| 天堂mv亚洲mv在线播放9蜜 | 99爱国产精品免费高清在线观看 | 免费高清一二三区日本 | 欧美性色生活免费观看 | 国产小主播野外在线播放 | 免费精品一区 | 国产精品亚洲а∨天堂2025 | 免费精品国产自产拍在线观看 | 国产美女爽到喷出水来视频 | 国产精品a成v人在线播放 | 欧美精品日韩精品一卡 | 在线播放免费精品 | 日韩精品制服诱惑中文字幕 | 亚洲欧美香蕉在线日韩精选 | 亚洲成片| 国产亚洲日本欧美精 | 国产宅男z资 | 成人中文字幕在线 | 一本一本大道香蕉久在线精品 |