它不是在指定的文件路径上创建备份,而是在SSMS中像普通查询一样运行时,它会在默认位置创建备份,并调用文件“N' N'在这种情况下,但当我更改文件路径以删除N时,它会将其称为offtraphe。
我的存储过程:
ALTER PROCEDURE [dbo].[BackUpTo]
-- Add the parameters for the stored procedure here
@FilePath nvarchar
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
-- N'c:\temp\backups\lob_backup.bak'
BACKUP DATABASE [lob]
TO DISK = @FilePath
END
打电话给我的测试:
try
{
SqlCommand cmd = new SqlCommand("BackUpTo", conn);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter filepath = cmd.Parameters.Add("@FilePath", SqlDbType.NVarChar);
filepath.Direction = ParameterDirection.Input;
filepath.Value = @"N'c:\temp\backups\lob_backup.bak'";
conn.Open();
cmd.ExecuteNonQuery();
}
finally
{
conn.Close();
}
编辑:
HoneyBadger指出的解决方案是我没有设置长度,因此默认为1(第一个字符)。