mysql 视图 动态sql_sql-server – 使用动态Sql创建视图
我正在嘗試創(chuàng)建一個動態(tài)數(shù)據(jù)庫創(chuàng)建腳本.
有很多步驟,我們經(jīng)常創(chuàng)建這個數(shù)據(jù)庫,所以腳本看起來像這樣.
DECLARE @databaseName nvarchar(100) = 'DatabaseName'
EXEC('/*A lot of database creation code built off of @databaseName*/')
除了我們在此數(shù)據(jù)庫中創(chuàng)建的一個視圖外,這一切都很好.
我理解的問題源于SQL中關(guān)于EXEC命令的三個規(guī)則
> USE背景只對EXEC的生命有效
>’CREATE VIEW’必須是查詢批處理中的第一個語句
> GO實際上不是SQL命令,因此在動態(tài)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]')
有什么建議?我認(rèn)為這應(yīng)該是一個常見的用例,但谷歌無法幫助我.
總結(jié)
以上是生活随笔為你收集整理的mysql 视图 动态sql_sql-server – 使用动态Sql创建视图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jq获取表格里的checkbox_Pyt
- 下一篇: mysql 主从 sql线程no_Mys