0
create procedure pro_training2
as 
begin
    create view Tab1view As
      select * from tab1
end

調達でビューを作成することは可能ですか?

4

3 に答える 3

3

これは、動的 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

しかし、これは深刻なコード臭です。

于 2012-07-18T13:41:16.063 に答える
0

上記はMySQL構文ではありませんが、MySQLでタグ付けしました。

CREATE VIEWいずれにせよ、MySQL を意味する場合: はい、プロシージャ内から発行することは可能ですが、別の構文を使用します。

CREATE PROCEDURE pro_training2()
MODIFIES SQL DATA

BEGIN
  create view Tab1view As select * from tab1;
END
于 2012-07-18T13:41:58.993 に答える
0

sp_executesql を使用して、データベース名を指定します。

EXEC myDb1..sp_executesql N'CREATE VIEW Tab1view As select * from tab1'
于 2012-07-18T13:43:20.040 に答える