sql - 如何在 SQL 脚本文件中使用参数

标签 sql parameters

我想用 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 模式”

enter image description here

并且该更改影响正在打开的 SSMS 中的新窗口 - 它不适用于已打开的窗口。

关于sql - 如何在 SQL 脚本文件中使用参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428914/

相关文章:

javascript - 如何使用 html 和 javascript 获取和传递链接参数

mysql - 我的 SQL 语句被执行了两次(我是初学者)

MySQL Limit 2 如何选择第二行

list - Dart:如何创建一个空列表作为默认参数

php - 我想打印带参数的 PHP 查询

sql - Sybase - 对 IN 子句使用参数

sql - 从同一 Azure SQL Server 上的其他数据库调用主数据库的函数

sql - 帮我建一个 SQL select 语句

mysql - SQLite 查找两个表之间的差异

c# - 如何在 ASP.Net 中解析和重建 URL?