SAS libname语法,通过ODBC连接到SQL Server

doo*_*ord 5 sql sas sql-server-2014

我用谷歌搜索了几天,但是无法正常工作.

我正在使用SQL 2014和adventureworks数据库.

我有SAS 9.3.

我尝试了不同的ODBC设置,如设置默认数据库,使用Windows登录或SQL登录.不同的司机.仍然没有,使用完整和noprompt:

libname mylib odbc complete='TrustedConnection=True;DSN=test2;SERVER=MYSERVER\SQLEXPRESS;DATABASE=AdventureWorks2012;'stringdates=yes;
proc print data=mylib.Person;
Run Code Online (Sandbox Code Playgroud)

错误信息:

注意:Libref MYLIB已成功分配如下:引擎:ODBC物理名称:test2

注49-169:在未来的SAS版本中,带引号的字符串后标识符的含义可能会更改.建议在带引号的字符串和后续标识符之间插入空格.

注意:由于错误,SAS系统停止处理此步骤.注意:使用PROCEDURE PRINT(总处理时间):实时5.48秒cpu时间0.34秒

700 proc打印数据= mylib.Person; 错误:文件MYLIB.Person.DATA不存在

我已尝试过Person.Person并且也在连接字符串中使用schema=Person.

但是,如果我使用以下它可以工作.我把默认数据库放在ODBC中:

proc sql;
   connect to odbc as mycon
   (required = "dsn=awlt32;uid=sa;password=mypassword");
   select *
   from connection to mycon
      (select *
      from Person.Person);

disconnect from mycon;
quit;
Run Code Online (Sandbox Code Playgroud)

我知道这是一个非常简单的问题,但无论我找到什么样的代码,我似乎都无法使它工作.提前致谢.

mom*_*644 2

  1. 将数据库连接添加到 ODBC 驱动程序;您将需要在 libname 中包含此连接的名称,
  2. 使用下面的 libname 并更新 datasrc、sql 用户和密码

LIBNAME mylib ODBC DATASRC=name from step1 SCHEMA=dbo USER=sql user PASSWORD="xxx" ;

proc datasets lib=mylib ;
quit;
Run Code Online (Sandbox Code Playgroud)