Предложения. Хотя не может найти что-то не так, почему бы не сделать это обычным способом.
Всегда объявляйте переменную перед обновлением, вставкой или любым действием.
CREATE PROCEDURE dbo.sp_test2
AS
BEGIN
DECLARE @status as int
SET @status = 1
UPDATE dbo.BView
SET bview='dar'
WHERE pt='foo'
SELECT @status as 'status'
END
вторых Всегда используйте ключевое слово AS
затем переменную типа, а затем по размеру. Если вы не следуете переменному размеру, он в основном возвращает 0, в основном ноты типов nvarchar/varchar. Пример
DECLARE @status as nvarchar
Часто возвращает 0 при использовании против строки длины 20. Где as,
Declare @status as nvacrhar(20)
Работы отлично.
Возможно, произошла ошибка в ваших процессах обновления/вставки и я вижу, что u помещает объявление и процесс выбора в один и тот же узел (например, начало и конец). Вы можете проверить наличие ошибки.
CREATE PROCEDURE dbo.sp_test2
AS
BEGIN
DECLARE @status as int
DECLARE @error as int
SET @status = 1
SET @Error = @@ERROR
--Some statement, update or insert, let's say:
UPDATE dbo.BView
SET bview='dar'
WHERE pt='foo'
IF @Error > 0
print 'ERROR'
else
SELECT @status as 'status'
END
Эти предложения, хотя, я часто делаю этот путь, и это никогда не подводит меня. Лучшее понимание переменной в SQL Here и . Повышение ошибок в MSSql here и многие другие. Надеюсь, поможет.
Я не слышал о переменных, имеющих значения по умолчанию. Если вы не инициализируете переменную, вы получите 'NULL' !! –
Что вы назначили после того, как значение по умолчанию было 1? – knkarthick24
Каков ожидаемый результат. – Veera