我正在尝试将数据从SQL Server管理工作室加载到Stata中。如何让Stata运行.sql文件?我在其他帖子中使用了-ado-程序,但由于我的数据库有用户名和密码,因此无效。
原始-ado-代码:
program define loadsql
*! Load the output of an SQL file into Stata, version 1.2 (dvmaster@gmail.com)
version 12.1
syntax using/, DSN(string) [CLEAR NOQuote LOWercase SQLshow ALLSTRing DATESTRing]
#delimit;
tempname mysqlfile exec line;
file open `mysqlfile' using `"`using'"', read text;
file read `mysqlfile' `line';
while r(eof)==0 {;
local `exec' `"``exec'' ``line''"';
file read `mysqlfile' `line';
};
file close `mysqlfile';
odbc load, exec(`"``exec''"') dsn(`"`dsn'"') `clear' `noquote' `lowercase' `sqlshow' `allstring' `datestring';
end;
答案 0 :(得分:1)
help odbc
讨论connect_options以连接到odbc数据源。其中两个是u(userId)
和p(password)
,可以添加到@Dimitriy V. Masterov编写的原始代码中(请参阅帖子here)。
我相信您应该能够使用SQL Server身份验证进行连接,方法是在ado文件中添加u(string)
和p(string)
作为syntax
后面的附加选项,然后在下面的< / p>
odbc load, exec(`"``exec''"') dsn(`"`dsn'"')
这也需要您在调用它时将这些参数传递给程序:
loadsql using "./sqlfile.sql", dsn("mysqlodbcdata") u(userId) p(Password)