Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / if exists (Dynamic SQL) / 4 сообщений из 4, страница 1 из 1
25.11.2020, 13:08
    #40022050
Двоичник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists (Dynamic SQL)
формирую запрос

Код: sql
1.
2.
3.
declare @id int = 1
declare @sql varchar(2000)
set @sql = 'select id from MyTable where id = '+ @id



сейчас делаю так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
 declare @tp table (id int, sql_text varchar(2000))

insert into @tp (id)
exec(@sql)

if @@ROWCOUNT > 0 
-- И ТОГДА ДЕЛАТЬ ДЕЙСТВИЕ ... 





Но можно ли как-то переиначить?
Код: sql
1.
2.
if exists (exec(@sql))
-- И ТОГДА ДЕЛАТЬ ДЕЙСТВИЕ ... 



Вроде и мой вариант работает, но как-то корявенько выглядит.
Спасибо
...
Рейтинг: 0 / 0
25.11.2020, 13:17
    #40022053
komrad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists (Dynamic SQL)
Двоичник,

попробуй так

Код: sql
1.
2.
3.
4.
5.
6.
declare @exists int

exec sp_executesql N'if exists (select top 1 1 from Mytable where id=@i) select @out=1 else select @out=0',N'@i int, @out int output',@i=@id,@out=@exists 

if @exists =1 
...
...
Рейтинг: 0 / 0
25.11.2020, 13:18
    #40022054
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists (Dynamic SQL)
К строке прибавляете целое число? И всё работает??
...
Рейтинг: 0 / 0
25.11.2020, 13:23
    #40022059
Двоичник
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
if exists (Dynamic SQL)
iap,

это абстрактивный пример от моего рабочего запроса. Считайте опечаткой. Я же не буду копипастить скрипт с рабочей БД. прошу понять и простить
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / if exists (Dynamic SQL) / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]