Очевидно, что гораздо чаще это делается в других местах, но если вы сохраняете поведенческую логику в SQL, вы можете выполнить одно из следующих действий:
Использовать параметр
просто передайте что-нибудь процедуре.Например,
Create Proc sp_Search (@Search varchar(500), @behavior int)
AS
if @behavior = 1
...
if @behavior = 2
...
Однако для этого требуется, чтобы ваши приложения знали об этом параметре, а это может не соответствовать вашим ожиданиям.
Использовать что-то в сеансе
Вы также можете использовать информацию о сеансе.Например, APP_NAME()
Create Proc sp_Search (@Search varchar(500))
AS
if APP_NAME()= 'Application A'
...
if APP_NAME()= 'Application B'
...
Использовать определенного пользователя
Другой вариант - указать имена пользователей в контексте, который они 'Вы собираетесь использовать, а затем использовать CURRENT_USER
Create Proc sp_Search (@Search varchar (500)) AS
if CURRENT_USER()= 'ConsoleCreds'
...
if CURRENT_USER()= 'WebCreds'
...
Честно говоря, я бы предпочел любое поведениес помощью любого приложения (Механизм), а затем настройте политику для каждого приложения, а не связывайте Механизм и Политику вместе (как указано выше)