можем ли мы вернуть null из хранимой процедуры
можем ли мы вернуть значение null из хранимой процедуры. я не хочу использовать collase или isnull. Я хочу захватить NULL на интерфейсе. Возможно ли это ?
Edit:
Я использую
Sql Server 2005
например. где я хочу использовать
CREATE PROCEDURE [Authentication].[spOnlineTest_CheckLogin]
@UserName NVARCHAR(50)
AS
BEGIN TRY
BEGIN TRAN
COMMIT TRAN
RETURN NULL
END TRY
Процедура "spOnlineTest_CheckLogin" попыталась вернуть статус NULL, который не разрешен. Вместо этого будет возвращено состояние 0. Msg 0, Уровень 11, Состояние 0, Строка 0 В текущей команде произошла серьезная ошибка. Результаты, если таковые имеются, следует отбросить.
3 ответов
использовать выходной параметр, например
CREATE PROCEDURE Test
@UserName NVARCHAR(50), @Status int output
AS
BEGIN TRY
BEGIN TRAN
COMMIT TRAN
set @Status = null
END TRY
begin catch
end catch
go
тогда назовите это так
declare @s int
set @s =5
exec Test'bla',@s output
select @s --will be null
вы можете думать о proc, как следует. Позвольте мне сначала задать контекст. У нас может быть столик!--1--> и хотите получить идентификатор, и если он не найден, он будет равен нулю. Поэтому мы могли бы написать proc следующим образом:
CREATE PROCEDURE GetId
@Name VARCHAR(50), @Status int output
AS
BEGIN TRY
set @Status = null
select @Status = id from Table1 where name=@name
это будет работать для вас.