這兩天從伺服器匯出乙個150多mb的指令碼檔案,匯入到我本地的sqlserver資料庫中時,直接開啟執行提示記憶體不足的錯誤,於是google搜尋發現微軟針對此類情況有不少命令列工具,其中有一款sqlcmd 實用工具,官方文件位址為:sqlcmd 實用工具
sqlcmd 實用工具是乙個命令列實用工具,用於 transact-sql 語句和指令碼的臨時、互動執行以及自動執行 transact-sql 指令碼撰寫任務。 若要以互動方式使用 sqlcmd ,或要生成可使用 sqlcmd執行的指令碼檔案,使用者需要了解 transact-sql。 通常以下列方式使用 sqlcmd 實用工具
sqlcmd
-a packet_size
-a (dedicated administrator connection)
-b (terminate batch job if there is an error)
-c batch_terminator
-c (trust the server certificate)
-d db_name
-e (echo input)
-e (use trusted connection)
-f codepage | i:codepage[,o:codepage]
| o:codepage[,i:codepage]
-g (enable column encryption)
-g (use azure active directory for authentication)
-h rows_per_header
-h workstation_name
-i input_file
-i (enable quoted identifiers)
-j (print raw error messages)
-k[1 | 2]
(remove or replace control characters)
-l login_timeout
-l[c]
(list servers, optional clean output)
-m error_level
-m multisubnet_failover
-n (encrypt connection)
-o output_file
-p[1]
(print statistics, optional colon format)
-p password
-q "cmdline query"
-q "cmdline query"
(and exit)
-r[0 | 1]
(msgs to stderr)
-r (use client regional settings)
-s col_separator
-s [protocol:]server[instance_name]
[,port]
-t query_timeout
-u (unicode output file)
-u login_id
-v var =
"value"
-v error_severity_level
-w column_width
-w (remove trailing spaces)
-x (disable variable substitution)
-x[1]
(disable commands, startup script, environment variables, optional exit)
-y variable_length_type_display_width
-y fixed_length_type_display_width
-z new_password
-z new_password (and exit)
-? (usage)
假如我有乙個input.sql的指令碼,超過100多mb,本地sqlserver伺服器位址為localhost,賬號為sa,密碼為123456,資料庫名稱為testdb,需要將指令碼匯入到testdb中,開啟終端,進入到input.sql指令碼所在目錄(比如說d:/test),執行如下命令:
sqlcmd -s localhost -u sa -p 123456 -d testdb -i input.sql
具體的引數描述可以參考官網:sqlcmd - 使用實用工具
當然在命令列中直接使用sqlcmd -?也可以檢視相關引數的用法,如下圖所示:
使用sqlcmd在批處理指令碼中執行SQL
使用sqlcmd可以在批處理指令碼中執行sql。雖然這個命令的引數很多,但幸運的是,我們不需要全部理解,在這裡簡要介紹以下幾個 e trusted connection 如果指定了 e就不需要指定使用者名稱密碼,當然指定了使用者名稱密碼就不用 e了 s server name instance na...
大Sql的切分執行
以前一直覺得sql應該減少傳遞次數,減少和資料庫的通訊,這樣可以提高效率。但現在發現,凡事都有個度的問題,由於業務需要一次性插入大概4000條資料,如果有併發操作,很容易就造成sql超時錯誤。於是就寫了乙個能夠拆分大sql執行的函式。執行大sql語句,傳入為stringbuilder以提高效率。pu...
SQL資料中執行cmd命令
在sql查詢分析器裡面是不能直接執行cmd命令的 但是sql給出了乙個介面 開啟高階設定 exec sp configure show advanced options 1 reconfigure 開啟xp cmdshell擴充套件儲存過程 exec sp configure xp cmdshell...