先改正第一个错误:将out 改为outputCREATE PROCEDURE [dbo].[usp_GetSampleTestInfo]
@ic_PatientCardID varchar(24),
@oi_ErrorID int=0 output,
@oc_ErrorText varchar(100)='' output
AS
@ic_PatientCardID varchar(24),
@oi_ErrorID int=0 output,
@oc_ErrorText varchar(100)='' output
AS
set @SequenceID =''
SELECT @SequenceID =@SequenceID +SequenceID FROM LE_SamplingM WHERE PatientCardID = @ic_PatientCardID
@ic_PatientCardID varchar(24),
@oi_ErrorID int=0 out, --错误ID<>0 - 出错; 错误ID=0 - 执行成功
@oc_ErrorText varchar(100)='' out --错误信息
ASSET NOCOUNT ONDECLARE @SequenceID varchar(500)
set @SequenceID=''
SELECT @SequenceID =@SequenceID+SequenceID FROM LE_SamplingM WHERE PatientCardID = @ic_PatientCardIDSELECT * FROM LE_SamplingD WHERE SequenceID = @SequenceIDIF (@@error<>0)
BEGIN
SELECT @oi_ErrorID=-1,@oc_ErrorText='修改结果出错!'
GOTO Error_Quit
ENDError_Quit:
IF(@oi_ErrorID <> 0)
SELECT @oi_ErrorID AS ErrorID,@oc_ErrorText AS ErrorText
GO
@ic_PatientCardID varchar(24),
@oi_ErrorID int=0 out, --错误ID<>0 - 出错; 错误ID=0 - 执行成功
@oc_ErrorText varchar(100)='' out --错误信息
ASSET NOCOUNT ONDECLARE @SequenceID varchar(500)
set @SequenceID=''
SELECT @SequenceID =@SequenceID+SequenceID FROM LE_SamplingM WHERE PatientCardID = @ic_PatientCardIDdeclare @sql varchar(100)
set @sql='SELECT * FROM LE_SamplingD WHERE SequenceID in ('''+@SequenceID+''')'
exec(@sql)IF (@@error<>0)
BEGIN
SELECT @oi_ErrorID=-1,@oc_ErrorText='修改结果出错!'
GOTO Error_Quit
ENDError_Quit:
IF(@oi_ErrorID <> 0)
SELECT @oi_ErrorID AS ErrorID,@oc_ErrorText AS ErrorText
GO
alter PROCEDURE [dbo].[usp_GetSampleTestInfo]
@ic_PatientCardID varchar(24),
@oi_ErrorID int=0 out, --错误ID<>0 - 出错; 错误ID=0 - 执行成功
@oc_ErrorText varchar(100)='' out --错误信息
ASSET NOCOUNT ONSELECT * FROM LE_SamplingD
WHERE SequenceID in (select SequenceID from LE_SamplingM where PatientCardID = @ic_PatientCardID)IF (@@error<>0)
BEGIN
SELECT @oi_ErrorID=-1,@oc_ErrorText='修改结果出错!'
GOTO Error_Quit
ENDError_Quit:
IF(@oi_ErrorID <> 0)
SELECT @oi_ErrorID AS ErrorID,@oc_ErrorText AS ErrorText
GO
@ic_PatientCardIDvarchar(24)
ASSET NOCOUNT ONSELECT * FROM LE_SamplingD
WHERE SequenceID in (select SequenceID from LE_SamplingM where PatientCardID = @ic_PatientCardID)IF (@@error<>0)
Return 1--表示出错
else
Return 0--表示执行成功GO那么调用时候,就可以先判断return值,然后再确定时候是出错还是可以抓取出来数据
declare @results as int
exec @results = [dbo].[usp_GetSampleTestInfo] '###'
print @results --在sql server测试