Sql-Server
SQLCMD 停留在“設置 textsize 4096”
我正在使用 SQL Data Compare 生成一個腳本來更新 QA 數據庫(SQL Server 2012)中的數據。
腳本大約 500mb,我
GO
每 100 行添加一個。當我啟動腳本時:sqlcmd -E -S [server] -d [db] -i "[path to file]"
連接已建立,但它卡在 sqlcmd 發出的第一個 sql 查詢上,而不是帶有錯誤消息的腳本:
設置文本大小 4096
我試圖讓它執行一個下午,只是為了看看我是否收到錯誤或超時等,但我什麼也沒得到,它只是卡在上面。我所能做的就是停止 sqlcmd (
CTRL+C
在控制台中)。我嘗試使用 Management Studio 2008 和 2012。
有誰知道我為什麼會收到這個錯誤?
更新: 我嘗試使用 -o 執行它,但即使在 3 小時後也沒有寫入文件。這些是生成腳本的第一行:
SET NUMERIC_ROUNDABORT OFF GO SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT, QUOTED_IDENTIFIER, ANSI_NULLS, NOCOUNT ON GO SET DATEFORMAT YMD GO SET XACT_ABORT ON GO SET TRANSACTION ISOLATION LEVEL SERIALIZABLE GO BEGIN TRANSACTION -- Pointer used for text / image updates. This might not be needed, but is declared here just in case DECLARE @pv binary(16) [delete update or insert...]
我在你的腳本中看到,有一個
BEGIN TRANSACTION
然後是刪除/插入/更新。我猜如果你有很大的容量變化,這個事務可能需要更長的時間,這取決於你的目標數據庫的狀態,例如是否有衝突的會話阻塞了你目前的會話,或者你的目標數據庫的日誌文件增長設置為 1024KB。所以我建議你可以啟動 Profiler 來檢查啟動了哪個 sql 語句,同時檢查是否有阻塞問題。