小编fci*_*tti的帖子

在函数 xp_dirtree 上传递变量时出错

我正在尝试编写一个存储过程,该过程收集位于特定存档中的所有文件的名称并将其存储在临时表中。当我编写它并将路径硬编码为函数 xp_dirtree 中的参数时,它会产生我想要的结果。

IF ( SELECT Object_id('tempdb..#archf_names')) IS NOT NULL
BEGIN
  DROP TABLE #archf_names
END

--table to hold file information
CREATE TABLE #archf_names(filename VARCHAR(MAX), depth INT, filetype INT NOT NULL)     

INSERT #archf_names (filename, depth, filetype)
EXEC MASTER.sys.xp_dirtree '\\sqlvm82\ImportsExports\Archive\Archive', 1, 1

SELECT * FROM #archf_names
WHERE filetype <> 0
Run Code Online (Sandbox Code Playgroud)

当我尝试传入已设置为等于上面硬编码的相同路径的 VARCHAR 类型变量时,出现此错误“当前命令发生严重错误。结果(如果有)应丢弃。”

DECLARE @path  AS VARCHAR(MAX) --Path to folder containing archive

SET @path = 'C:\\sqlvm82\ImportsExports\Archive\Archive'

IF ( SELECT Object_id('tempdb..#archf_names')) IS NOT NULL
BEGIN
  DROP TABLE #archf_names
END

IF ( SELECT Object_id('tempdb..#sh_out')) …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

2
推荐指数
1
解决办法
2896
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1