在 SQL Server 中,可以使用参数来指定数据和日志文件的位置来动态创建数据库。但是,您最初的方法导致了与 CREATE DATABASE 语句中变量的使用相关的错误。
要克服此限制,您可以使用动态 SQL,它允许您以编程方式构造和执行 SQL 语句。以下是实现目标的方法:
DECLARE @DataFilePath AS NVARCHAR(MAX) SET @DataFilePath = N'C:\ProgramData\Gemcom\' DECLARE @LogFilePath AS NVARCHAR(MAX) SET @LogFilePath = N'C:\ProgramData\Gemcom\' -- Construct the dynamic SQL statement SELECT @sql = 'CREATE DATABASE TestDB ON PRIMARY ( NAME = ''TestDB_Data'', FILENAME = ' + quotename(@DataFilePath) + ') LOG ON ( NAME = ''TestDB_Log'', FILENAME = ' + quotename(@LogFilePath) + ')' -- Execute the dynamic SQL statement EXEC (@sql)
此方法使用 quotename() 函数正确引用动态 SQL 语句中的变量值。然后 EXEC 命令执行构造的语句,允许您创建数据库并指定所需的文件路径。
以上是如何使用参数动态创建SQL Server数据库?的详细内容。更多信息请关注PHP中文网其他相关文章!