如何通过使用Azure数据库配置将数据库名称作为参数值传递来创建新数据库

Vignesh拉梅什

我正在尝试通过将参数值传递给数据库名称来创建新数据库

ALTER PROCEDURE [dbo].[p_dbCreation] @dbname nvarchar(30)
AS
CREATE DATABASE [@dbname] (EDITION = 'Standard', SERVICE_OBJECTIVE = ELASTIC_POOL (name = [xxx]), MAXSIZE = 250 GB) WITH CATALOG_COLLATION = SQL_Latin1_General_CP1_CI_AS; 

但是我的数据库正在使用名称@dbname而不是我传递的值来创建

拉努

您不能使用变量来替换文字。CREATE DATABASE [@dbname]; 字面上的意思是用名称创建数据库@dbname而不是@dbname就像您不会期望SELECT '@dbname'从内部返回值@dbname而是返回文字值一样'@dbname'

唯一的方法是使用动态SQL,但是,我个人建议,如果您有这种要求,则存在设计缺陷。

CREATE OR ALTER PROCEDURE [dbo].[p_dbCreation] @dbname sysname AS --sysname is the correct data type for an object name
BEGIN
    DECLARE @SQL nvarchar(MAX);
    SET @SQL = N'CREATE DATABASE ' + QUOTENAME(@dbname) + N' (EDITION = ''Standard'', SERVICE_OBJECTIVE = ELASTIC_POOL (name = [xxx]), MAXSIZE = 250 GB) WITH CATALOG_COLLATION = SQL_Latin1_General_CP1_CI_AS;';
    EXEC sys.sp_executesql @SQL;
END;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将MongoDB集合名称作为参数传递给数据库连接函数-Python

SQL Server:如何在存储过程中使用数据库名称作为参数?

在MVC中使用EF创建多个数据库,并将数据库名称作为web.config中的变量传递给InitialCatalogue

数据库名称作为 MySQL 查询中的变量

将数据库名称或整个数据库作为变量传递

通过SELECT创建数据库名称

使用变量/数据库名称使用php / PDO创建新数据库

通过bash在数据库名称中使用破折号创建数据库

如果存在语句,则将数据库名称作为变量传递

如何通过bash创建新的mysql数据库/模式?

如何使用c#中的现有数据库创建新数据库?

通过将新行插入(添加)表(SQL Server数据库)来触发Azure函数

将数值从NumericUpDown控件传递到SQL数据库

如何使用Python动态创建mongo数据库的名称?

我是复制数据库还是使用数据同步来创建和管理数据库以在 Azure 中进行测试

如何使用续集创建数据库

如何使用flyway创建数据库?

如何使用数据库创建.jar?

如何通过 ODBC 使用参数更新数据库?

如何使用 cutom LIKE 参数创建数据库视图?

如何使用PyMongo在MongoDB中创建新数据库?

如何使用Python创建新的数据库.mdb

如何使用SQLAlchemy创建新数据库?

如何使用防锈柴油创建新数据库?

如何使用pymongo创建新的数据库和集合?

如何使用AJAX将值传递到数据库

传递数据库名称(如变量)

将对象作为参数传递的对象数据库

如何通过在flutter中删除旧数据库来升级数据库?