gpt4 book ai didi

sql - 发生文件激活错误。物理文件名 'N@filename

转载 作者:行者123 更新时间:2023-12-04 06:27:23 29 4
gpt4 key购买 nike

下面的 t-sql 代码编译得很好。但是当我运行它时
exec [SP_ATTACH_NW] N'C:\myfolder' 我得到

消息 5105,级别 16,状态 2,过程 SP_ATTACH_NW,第 14 行
发生文件激活错误。物理文件名“N@mdfFileName”可能不正确。诊断并更正其他错误,然后重试该操作。

USE master

GO

SET ANSI_NULLS ON

GO

CREATE PROCEDURE [dbo].[SP_ATTACH_NW] (
@DestFolder varchar(255)
)

AS

BEGIN

SET NOCOUNT ON;

Declare @mdfFileName varchar(255)
Declare @ldfFileName varchar(255)

set @mdfFileName = @DestFolder + '\northwnd.mdf'
set @ldfFileName = @DestFolder + '\northwnd.ldf'

CREATE DATABASE [Northwind] ON

( FILENAME = N@mdfFileName ),

( FILENAME = N@ldfFileName )

FOR ATTACH


END

请指教。谢谢

最佳答案

CREATE DATABASE 的文件名参数中不能有变量(MSDN 没有在语法中显示 @vars)

上面的代码实际上是在寻找常量“N@mdfFileName”作为文件名。

你需要动态 SQL 来构建一个字符串,比如 @MyBuiltSQL 然后运行 ​​EXEC(@MyBuiltSQL)
注意:此处的“N”前缀无论如何都不会使 @mdfFileName nvarchar

关于sql - 发生文件激活错误。物理文件名 'N@filename,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5876410/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com