SQL Server 中執行Shell腳本計算本地文件的內容大小
- 2019 年 10 月 4 日
- 筆記
SQL Server 資料庫中除了能執行基本的SQL語句外,也可以執行Shell腳本。默認安裝後,SQL中的Shell腳本的功能是關閉的,需要手動打開,
執行以下腳本即可打開該功能。
-- 允許配置高級選項(1:允許 0:禁止) EXEC sp_configure 'show advanced options', 1 GO -- 重新配置 RECONFIGURE GO -- 啟用xp_cmdshell(1:啟用 0:禁用) EXEC sp_configure 'xp_cmdshell', 0 GO --重新配置 RECONFIGURE GO
在本地系統C盤根目錄下常見一個測試文件,123.txt,內容為:你好,我好,大家好。
在SQL Server查詢分析器中執行以下腳本:
--判斷臨時表是否已經存在 IF OBJECT_ID('tempdb..#TempTable') IS NOT NULL BEGIN DROP TABLE #TempTable;--刪除臨時表 END --創建臨時表 CREATE TABLE #TempTable ( Size varchar(8000) ) --執行shell腳本並將結果插入臨時表中 INSERT INTO #TempTable exec xp_cmdshell 'for /f %i in ("C:123.txt") do @echo %~zi' --查詢結果 SELECT * FROM #TempTable
結果如下:

文件大小為20位元組。
