简体   繁体   English

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

[英]How to SQL Pass-through in SAS, create view or table

I am trying to create a View on the database through SAS, SQL passthrough the following way 我正在尝试通过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;

Howeever, I get the following errors 但是,出现以下错误

ERROR: CLI prepare error: [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near the keyword 'select'. 错误:CLI准备错误:[Microsoft] [SQL Server Native Client 11.0] [SQL Server]关键字“ select”附近的语法不正确。 : [Microsoft][SQL Server Native Client 11.0][SQL Server]Incorrect syntax near ')'. :[Microsoft] [SQL Server Native Client 11.0] [SQL Server]')'附近的语法不正确。

You have an extraneous SELECT * FROM connection to myuser; 您有一个SELECT * FROM connection to myuser;无关的SELECT * FROM connection to myuser; inside the EXECUTE. 内部执行。 The code inside EXECUTE is submitted directly to SQL server, and your extraneous code is invalid. EXECUTE的代码直接提交到SQL Server,并且您的无关代码无效。

Here is the SAS pass-through corrected. 这是SAS直通校正的。 I would advise against using table as part of view name. 我建议不要将table用作视图名称的一部分。 Note: You will see an error message if your SQL Server credentials do not have the data base grants needed to create a view. 注意:如果您的SQL Server凭据没有创建视图所需的数据库授予,您将看到一条错误消息。

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

From SQL Server docs for CREATE VIEW SQL Server文档创建视图

 CREATE [ OR ALTER ] VIEW [ schema_name . ] view_name [ (column [ ,...n ] ) ] [ WITH <view_attribute> [ ,...n ] ] AS select_statement [ WITH CHECK OPTION ] [ ; ] 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM