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字节。