mysql 视图 动态sql_sql-server – 使用动态Sql创建视图

我正在尝试创建一个动态数据库创建脚本.

有很多步骤,我们经常创建这个数据库,所以脚本看起来像这样.

DECLARE @databaseName nvarchar(100) = 'DatabaseName'

EXEC('/*A lot of database creation code built off of @databaseName*/')

除了我们在此数据库中创建的一个视图外,这一切都很好.

我理解的问题源于SQL中关于EXEC命令的三个规则

> USE背景只对EXEC的生命有效

>’CREATE VIEW’必须是查询批处理中的第一个语句

> GO实际上不是SQL命令,因此在动态sql中不允许这样做

>在CREATE VIEW上,您只能指定为Schema.

所以这里有三件我尝试过但没有成功的事情.

--1.Results in my view not being created in my database

EXEC ('USE [' + @databaseName + ']')

EXEC ('CREATE VIEW')

--2.Results in a 'CREATE VIEW' must be the first statement in a query batch

EXEC

('

USE [' + @databaseName + ']

CREATE VIEW

')

--3.Results in Incorrect syntax near 'GO'

EXEC

('

USE [' + @databaseName + ']

GO

CREATE VIEW

')

--4.Results in 'CREATE/ALTER VIEW' does not allow specifying the database name as a prefix to the object name.

EXEC ('CREATE VIEW [' + @databaseName + '].[dbo].[ViewName]')

有什么建议?我认为这应该是一个常见的用例,但谷歌无法帮助我.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值