Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如果SQL存储过程正常运行,如何让SAS返回值?_Sql Server_Sas - Fatal编程技术网

Sql server 如果SQL存储过程正常运行,如何让SAS返回值?

Sql server 如果SQL存储过程正常运行,如何让SAS返回值?,sql-server,sas,Sql Server,Sas,我想用pass-thru重新运行一个存储过程。如果它运行正常或失败,如何让它返回值 现在,我的代码不返回任何内容,不管存储的代码是否正常运行且没有错误 proc sql; connect to odbc(noprompt="Driver={DataDirect 6.1 SQL Server Wire Protocol};Host=99.999.999.99;Port=9999;Database=ReportServer02;Uid=&userid.;Pwd=&password.;

我想用pass-thru重新运行一个存储过程。如果它运行正常或失败,如何让它返回值

现在,我的代码不返回任何内容,不管存储的代码是否正常运行且没有错误

proc sql;
connect to odbc(noprompt="Driver={DataDirect 6.1 SQL Server Wire Protocol};Host=99.999.999.99;Port=9999;Database=ReportServer02;Uid=&userid.;Pwd=&password.;");
     create table blob as select * FROM CONNECTION TO odbc 
    (declare @r int
    exec dbo.DivByZero;
    select @r as DivByZero;);

disconnect from odbc;

运行

您可以在存储过程中使用带有
return()
的返回代码。例如:

IF @divisor = 0
BEGIN
 RETURN(1) --Error!
END

ELSE
BEGIN
 --do some work
 RETURN(0) --Success!
END
然后当你打电话的时候,只需要得到返回码

DECLARE @rc int
EXEC @rc = dbo.DivByZero
SELECT @rc

MSDN关于存储过程返回代码的文章:

如果您正确地返回了某些内容(如@mallan1121所述),那么您应该能够用更少的代码来完成它,实际上:

create table blob as select * FROM CONNECTION TO odbc 
    (
    exec dbo.DivByZero;
    );
应将RC自动选择到
blob

在SP运行后,您还可以查看
&SQLXRC
&SQLXMSG
宏变量(即使使用
执行…
而不是
中选择);它们应该包含返回代码和任何返回的消息