我想用 SQL 脚本文件创建一个数据库,但我不能提供参数而不是数据库名称,我该如何解决这个问题?
Declare @Test as nvarchar(max)
CREATE DATABASE [@Test] ON PRIMARY
( NAME = N'@Test',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\@Test.mdf',
SIZE = 11264KB , MAXSIZE = 51200KB , FILEGROWTH = 10%)
LOG ON
( NAME = N'@Test_log',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\@Test_1.ldf' ,
SIZE = 9216KB , MAXSIZE = 25600KB , FILEGROWTH = 1024KB )
GO
ALTER DATABASE [@Test] SET COMPATIBILITY_LEVEL = 100
GO
最佳答案
如果您使用 SQLCMD compatibility mode in SQL Server Management Studio ,您可以使用 SQLCMD 参数:
:setvar dbname YourDatabase
CREATE DATABASE $(dbname) ON PRIMARY
( NAME = $(dbname),
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\$(dbname).mdf',
SIZE = 11264KB , MAXSIZE = 51200KB , FILEGROWTH = 10%)
LOG ON
( NAME = N'$(dbname)_log',
FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\$(dbname)_log.ldf' ,
SIZE = 9216KB , MAXSIZE = 25600KB , FILEGROWTH = 1024KB )
GO
ALTER DATABASE $(dbname) SET COMPATIBILITY_LEVEL = 100
GO
也可以在命令行上使用SQLCMD
命令行工具指定那些参数
您可以在 SQL Server Management Studio 的 Tools > Options
下启用“SQLCMD 模式”
并且该更改仅影响正在打开的 SSMS 中的新窗口 - 它不适用于已打开的窗口。
关于sql - 如何在 SQL 脚本文件中使用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428914/