使用 SQL Server 中的变量更改数据库名称和文件增长

nul*_*xff 4 sql t-sql sql-server

我想通过 SQL 脚本更改数据库的文件增长。对于数据库名称,我想使用一个变量。

谁能帮我编写这个 SQL Server 脚本吗?

DECLARE @db_name nvarchar(200);

SELECT @db_name = name 
FROM sys.database_files 
WHERE type = 0;

PRINT @db_name;

ALTER DATABASE [@db_name] 
  MODIFY FILE ( NAME = @db_name, FILEGROWTH = 100MB)
Run Code Online (Sandbox Code Playgroud)

谢谢....

mar*_*c_s 6

您不能直接执行此操作 - SQL Server 不允许在其大多数命令中使用表名和列名的变量。

您需要使用动态 SQL 查询 - 将查询创建为字符串,然后执行它:

DECLARE @db_name nvarchar(200);

SELECT @db_name = name 
FROM sys.database_files 
WHERE type = 0;

PRINT @db_name;

DECLARE @sqlquery NVARCHAR(500);

SET @sqlquery = N'ALTER DATABASE [' + @db_name + 
                N'] MODIFY FILE ( NAME = ' + @db_name +    
                N', FILEGROWTH = 100MB);';

PRINT @sqlquery

EXEC sp_executesql @sqlquery
Run Code Online (Sandbox Code Playgroud)