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位元組。