Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Вычисление переменной из запроса в процедуре с подстановкой имени таблицы
|
|||
|---|---|---|---|
|
#18+
Добрый день! Что-то никак не получается забрать значение из простого селекта для определения наличия повторяющихся записей в таблице. Составил такую конструкцию, а получить результат не могу 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 'Нет повторяющихся записей' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2002, 11:45 |
|
||
|
Вычисление переменной из запроса в процедуре с подстановкой имени таблицы
|
|||
|---|---|---|---|
|
#18+
Вообще-то 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-х запросов кто-то добавит записи, то ваша процедура получит неверные данные ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2002, 12:26 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3502&tid=1823826]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
23ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 313ms |

| 0 / 0 |
