powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вычисление переменной из запроса в процедуре с подстановкой имени таблицы
2 сообщений из 2, страница 1 из 1
Вычисление переменной из запроса в процедуре с подстановкой имени таблицы
    #32023523
Mikhail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Что-то никак не получается забрать значение из простого селекта
для определения наличия повторяющихся записей в таблице.

Составил такую конструкцию, а получить результат не могу

ALTER PROCEDURE Distinct_Any_Table

@TableName varchar(50)
AS
declare @str1 nvarchar (255),
@str2 nvarchar (255),
@str3 nvarchar (255),
@str4 nvarchar (255),
@str5 nvarchar (255),
@str6 nvarchar (255),
@str7 nvarchar (255),
@str8 nvarchar (255),
@rez1 int

set @str5='select distinct count(*) from ' + @TableName
exec @str6=sp_executesql @str5
set @str7='select count(*) from ' + @TableName
exec @str8=sp_executesql @str7

set @rez1= cast(@str6 as int)- cast(@str8 as int)
print 'Найдено '+str(@rez1)+' повторяющихся записей. Проводится их удаление...'

if @rez1>0
begin
set @str1='select distinct * into ' + '##' + @TableName + ' from ' + @TableName
exec (@str1)
set @str2='delete * from ##'+ @TableName
exec (@str2)
set @str3='select * into ' + @TableName + ' from ' + '##' + @TableName
exec (@str3)
set @str4='drop table ' + '##' + @TableName
exec (@str4)
end
else print 'Нет повторяющихся записей'
...
Рейтинг: 0 / 0
Вычисление переменной из запроса в процедуре с подстановкой имени таблицы
    #32023528
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то sp_executesql возвращает информацию об успешной/неуспешной попытке выполнения динамического запроса, а не результаты этого самого запроса.
См.сюда
http://www.sql.ru/cgi-bin/UltraBoard/UltraBoard.pl?Action=ShowPost&Board=mssql&Post=4156&Idle=365&Sort=0&Order=Descend&Page

И еще. Вы не боитесь, что если в промежутке между выполнениями 2-х запросов кто-то добавит записи, то ваша процедура получит неверные данные ?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вычисление переменной из запроса в процедуре с подстановкой имени таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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