У меня есть такая хранимая процедура,
Create Procedure [dbo].[Get_Data](
@Id as Varchar(20),
@Type as Varchar(10)
)
As
Begin
IF(@Type = 'skill')
Begin
.....
select * ....
END
IF(@Type = 'agent')
Begin
.....
select * ....
END
IF(@Type = 'skillProfile')
Begin
Print 'abc'
select * ....
.....
END
END
Примечание : в любом из циклов if нет синтаксиса или любой другой ошибки, так как каждый select
запрос внутри каждого циклауспешно протестированы.
Итак, теперь, когда я пытаюсь выполнить процедуру, используя команду, как показано ниже,
EXEC [Get_Data] '1391520','skillProfile'
оператор print
не печатается и не получает никаких строк в ответ, вместо этого я получаю сообщение Commands completed successfully.
Я попытался изменить последний (т.е. здесь третий) оператор if цикла, то есть с IF(@Type = 'skillProfile')
на IF(@Type = 'profile')
, и попытался выполнить как EXEC [Get_Data] '1391520','profile'
, который работал отлично!
Смутился с этим и попытался изменить первый цикл if и последний (третий) цикл if следующим образом: IF(@Type = 'skill')
на IF(@Type = 'xyz')
и IF(@Type = 'skillProfile')
на IF(@Type = 'xyzProfile')
и попытался выполнить как EXEC [Get_Data] '1391520','xyzProfile'
, что такжевсе работало нормально.
Теперь я совершенно сбит с толку, почему он не работает, когда я использую skill
и skillProfile
.