create procedure pro_training2
as
begin
create view Tab1view As
select * from tab1
end
調達でビューを作成することは可能ですか?
create procedure pro_training2
as
begin
create view Tab1view As
select * from tab1
end
調達でビューを作成することは可能ですか?
これは、動的 SQL を使用して行うことができます。
CREATE PROCEDURE dbo.pro_training2
AS
BEGIN
DECLARE @sql NVARCHAR(MAX);
SET @sql = N'CREATE VIEW dbo.Tab1View AS SELECT <columns> FROM dbo.tab1;';
EXEC sp_executesql @sql;
END
GO
しかし、これは深刻なコード臭です。
上記はMySQL構文ではありませんが、MySQLでタグ付けしました。
CREATE VIEW
いずれにせよ、MySQL を意味する場合: はい、プロシージャ内から発行することは可能ですが、別の構文を使用します。
CREATE PROCEDURE pro_training2()
MODIFIES SQL DATA
BEGIN
create view Tab1view As select * from tab1;
END
sp_executesql を使用して、データベース名を指定します。
EXEC myDb1..sp_executesql N'CREATE VIEW Tab1view As select * from tab1'