扩展存储过程xp_create_subdir返回“无效参数”消息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展存储过程xp_create_subdir返回“无效参数”消息相关的知识,希望对你有一定的参考价值。
从2005版开始,Microsoft SQL Server允许创建路径(如果它不存在)。只需使用参数指向存储过程,该参数将指向磁盘上的所需路
DECLARE @targetDirectory nvarchar(max) = N'E:ackup'
exec xp_create_subdir @targetDirectory
因此,如果您将上面的代码写入Microsoft SQL Server Management Studio的查询窗格中,则会收到以下错误消息:
消息22048,级别15,状态0,行0执行扩展存储过程时出错:无效参数
如果您将代码更改为,这很奇怪
exec xp_create_subdir N'E:ackup'
并执行它,在所需的路径上创建目录,假设sql服务帐户有权写入。
答案
虽然nvarchar(max)的最大长度为2GB字符,但是如果将@targetDirectory变量声明更改为
DECLARE @targetDirectory nvarchar(4000) = N'E:ackup'
并执行以下语句
exec xp_create_subdir @targetDirectory
您成功在磁盘E上创建子目录备份:如果它不存在并返回消息
命令已成功完成。在消息窗口中。
原因是存储过程xp_create_subdir不接受nvarchar(max)数据类型。
**编辑:**根据Sean Lange评论,原因是变量长度在上面的陈述中是不同的。
以上是关于扩展存储过程xp_create_subdir返回“无效参数”消息的主要内容,如果未能解决你的问题,请参考以下文章