powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли ускориться?
8 сообщений из 8, страница 1 из 1
Можно ли ускориться?
    #32044535
shved2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чё хачу: в одной таблице отбираем имена других таблиц (ID1) с определенным ключом (ID2), собираем @SQL и exec (в @SQL планируеться удаление). Можно ли обойтись без курсора или как-то сгруппировать в выходную таблицу по именам таблиц все строчки для удаления, а
затем одним чёхом exec? (а не по одной, каждый раз обращаясь к одним и тем же таблицам)

ЗЫ: Я ешо тока учусь....

use WORKWORK
GO
-- =============================================
DECLARE Curs_01 CURSOR
LOCAL FORWARD_ONLY DYNAMIC READ_ONLY
FOR SELECT ID1, ID2 FROM EnTab WHERE Kluch = ' xxx '

DECLARE @Table nvarchar(9), @ID char(9), @SQL nchar(100)
OPEN Curs_01

FETCH NEXT FROM Curs_01 INTO @Table, @ID

WHILE @@fetch_status <> -1
BEGIN
IF @@fetch_status <> -2
BEGIN
SET @SQL = 'Select TOP 5 * FROM ' + @Table + ' WHERE Index = ''' + @ID + ''''
exec (@SQL)
END
FETCH NEXT FROM Curs_01 INTO @Table, @ID
END

CLOSE Curs_01
DEALLOCATE Curs_01
GO
...
Рейтинг: 0 / 0
Можно ли ускориться?
    #32044539
Зайцев Фёдор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Научись для начала писать по русски. 8)
...
Рейтинг: 0 / 0
Можно ли ускориться?
    #32044565
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто-то пьёт таблетки,
а кто-то колется.
Я лично бухаю...
...
Рейтинг: 0 / 0
Можно ли ускориться?
    #32044573
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если серьёзно посмотри в сег. конфе "как можно сложить строки запроса".
...
Рейтинг: 0 / 0
Можно ли ускориться?
    #32044580
shved2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я тоже предпочитаю бухать...

Мне не надо "сложить".

Можно ли обойти курсор (пройтись по всем строкам выбранной таблицы)?
...
Рейтинг: 0 / 0
Можно ли ускориться?
    #32044596
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что, select @s = @s + Field не подходит?
...
Рейтинг: 0 / 0
Можно ли ускориться?
    #32044598
Фотография akuz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Без курсора EXEC не вызовешь
Можно для каждой таблицы в ID1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
DECLARE Curs_01 CURSOR 
LOCAL FORWARD_ONLY DYNAMIC READ_ONLY 
FOR SELECT DISTINCT ID1 FROM EnTab WHERE Kluch = ' xxx ' 

DECLARE @Table nvarchar( 9 ), @SQL varchar( 8000 ) 
OPEN Curs_01 

FETCH NEXT FROM Curs_01 INTO @Table

WHILE @@fetch_status <> - 1  
BEGIN 
IF @@fetch_status <> - 2  
BEGIN 
SET @SQL = 'SELECT INTO #t ID1 FROM EnTab WHERE Kluch = '' xxx '' AND ID2 = ''' + @Table + ''' Select TOP 5 * FROM ' + @Table + ' INNER JOIN #t ON [' + @Table+ '].Index = #t.ID1' 
exec (@SQL) 
END 
FETCH NEXT FROM Curs_01 INTO @Table
END 

CLOSE Curs_01 
DEALLOCATE Curs_01 
GO
...
Рейтинг: 0 / 0
Можно ли ускориться?
    #32044614
shved2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AKUZ: БОЛЬШОЕ СЕНКУ! ТО ШТО НАДО!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли ускориться?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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