[英]Passing a file path as a variable in SQL Server
I'm trying to add a file to a file group in order to create a partition in SQL Server.我正在尝试将文件添加到文件组,以便在 SQL 服务器中创建一个分区。 When I pass in a hardcoded file path to the the filename, the code works.
当我将硬编码的文件路径传递给文件名时,代码有效。 But when I use a variable for the file path, I get an error
但是当我使用变量作为文件路径时,出现错误
Incorrect syntax near @FilePath or Unexpected symbol @FilePath
@FilePath 或意外符号@FilePath 附近的语法不正确
This is my code:这是我的代码:
USE StudentRepository
BEGIN
SET NOCOUNT ON;
DECLARE @FilePath NVARCHAR(MAX) = "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLEXPRESS\MSSQL\DATA\",
@FileName NVARCHAR(MAX) = "FirstTerm2020",
@FileExt NVARCHAR(MAX) = ".NDF";
DECLARE @count INT = 0;
ALTER DATABASE StudentRepository
ADD FILE
(
NAME = 'FirstTerm2020',
FILENAME = @FilePath + @FileName + @FileExt, --Error here!
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP FirstTerm2020
END
When I pass a hardcoded file path to the filename, it works and creates the required partitions.当我将硬编码文件路径传递给文件名时,它会工作并创建所需的分区。 as below
如下
--Code omitted for brevity
FILENAME = "C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLEXPRESS\MSSQL\DATA\FirstTerm2020.NDF" --No error!
Please I need some help.我需要一些帮助。 How do I pass a file path as a variable?
如何将文件路径作为变量传递?
This is how I solved the problem.这就是我解决问题的方法。 I create a dynamic sql and passed the filepath variable like this.
我创建了一个动态的 sql 并像这样传递了文件路径变量。
USE StudentRepository
BEGIN
SET NOCOUNT ON;
DECLARE @FilePath NVARCHAR(MAX) = 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLEXPRESS\MSSQL\DATA\',
@FileName NVARCHAR(MAX) = 'SecondTerm2022',
@FileExt NVARCHAR(MAX) = '.NDF';
DECLARE @count INT = 0;
DECLARE @sql NVARCHAR(MAX) = '
ALTER DATABASE StudentRepository ADD FILEGROUP ' + @FileName + ';
ALTER DATABASE StudentRepository
ADD FILE
(
NAME = '+ @FileName + ',
FILENAME = ''' + @FilePath + @FileName + @FileExt + ''',
SIZE = 5MB,
MAXSIZE = 100MB,
FILEGROWTH = 5MB
)
TO FILEGROUP '+ @FileName
END
EXEC sp_executesql @sql
My major problem was that I was ommitting the three single quotes near @FilePath我的主要问题是我省略了@FilePath 附近的三个单引号
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.