如何在SAS中传递SQL,创建视图或表

如何在SAS中传递SQL,创建视图或表,sql,sas,proc,Sql,Sas,Proc,我正试图通过SAS、SQL和以下方式在数据库上创建一个视图 PROC sql; CONNECT TO odbc AS myuser(dsn=galaxy); EXECUTE( CREATE VIEW DB.SCHEM.table AS SELECT * FROM connection to myuser; (SELECT * FROM DB.SCHEM.table2) )by myuser; QUIT; 然而,我得到以下错误 错误:CLI准备错误:

我正试图通过SAS、SQL和以下方式在数据库上创建一个视图

PROC sql; 
CONNECT TO odbc AS myuser(dsn=galaxy);              
EXECUTE(
CREATE VIEW DB.SCHEM.table AS
    SELECT * FROM connection to myuser;
    (SELECT * FROM DB.SCHEM.table2)
)by myuser;
QUIT;
然而,我得到以下错误

错误:CLI准备错误:[Microsoft][SQL Server本机客户端 11.0][SQL Server]不正确 关键字“select”附近的语法:[Microsoft][SQL Server本机客户端11.0][SQL 服务器]靠近“)”的语法不正确


您有一个无关的
SELECT*fromconnection to myuser内部执行。
EXECUTE
中的代码直接提交给SQL server,您的无关代码无效

这里是SAS通过修正。我建议不要将
用作视图名称的一部分。注意:如果您的SQL Server凭据没有创建视图所需的数据库授权,您将看到一条错误消息

EXECUTE(
  CREATE VIEW DB.SCHEM.table AS
  SELECT * FROM DB.SCHEM.table2
) by myuser ;

创建[或更改]视图[模式名称]视图名称[(列[,…n])]
[与[,…n]]
AS select_语句
[带勾选选项]
[ ; ]  

你想干什么?为什么要执行第二个select语句?我正在尝试通过传递在数据库中创建一个视图,即使它像
code
execute一样(创建视图DB.SCHEM.table作为select*from DB.SCHEMA.table2
code
它给出了一个错误,它不允许将数据库名称指定为前缀。是的,但是为什么有两个select语句?没有联合?我正试图通过传递在数据库中创建一个视图,即使我有类似于
code
execute的视图。)(将视图DB.SCHEM.table创建为select*from DB.SCHEMA.table2
code
它给出了一个错误,不允许将数据库名称指定为前缀。通过传递从数据库上的另一个表创建表或视图的简单方法是什么?
CREATE [ OR ALTER ] VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ]   
[ WITH <view_attribute> [ ,...n ] ]   
AS select_statement   
[ WITH CHECK OPTION ]   
[ ; ]