Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите исправить скрипт. / 10 сообщений из 10, страница 1 из 1
05.12.2020, 15:04
    #40024852
thesomebody
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
Всем привет. В скриптах скуля не мастер, только пытаюсь познать.
Помогите, исправить скрипт. Ругается на строку 'EXECUTE IMMEDIATE', пишет: Сообщение 102, уровень 15, состояние 1, строка 24
Неправильный синтаксис около конструкции "+".

Собственно сам скрипт:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
use MyBase

declare @NameRegZad varchar(100);

select top 10 name --, *
into #AllNameRegZad 
from sys.tables
where name like '_ScheduledJobs%';

Declare partitions CURSOR FOR Select * from #AllNameRegZad;

OPEN partitions;

while 1=1
	begin;
		fetch next
		from partitions
		into @NameRegZad
		
		If @@FETCH_STATUS < 0 BREAK;
		
		print N'zadanie name = ' + @NameRegZad;
		
		EXECUTE IMMEDIATE 'UPDATE ' + @NameRegZad +' SET use=0 WHERE use=1';
		 
	end;

close partitions;
deallocate partitions;

drop table #AllNameRegZad;
go



Если будут советы как переделать, тоже буду рад прочесть.
Мне надо получить имена таблиц по подстроке, и исправить в них одно поле.
Всем спасибо
...
Рейтинг: 0 / 0
05.12.2020, 16:14
    #40024866
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
thesomebody

EXECUTE IMMEDIATE
Это что за оракловщина такая? Вы бы хоть документацию про динамический SQL почитали бы для начала...
...
Рейтинг: 0 / 0
05.12.2020, 16:23
    #40024868
thesomebody
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
Щукина Анна
thesomebody

EXECUTE IMMEDIATE
Это что за оракловщина такая? Вы бы хоть документацию про динамический SQL почитали бы для начала...


по делу что-нибудь от вас будет или вы так?

ПС: "Самый простой способ выполнить динамическую инструкцию SQL — выполнить инструкцию EXECUTE IMMEDIATE"
https://docs.microsoft.com/ru-ru/sql/odbc/reference/dynamic-sql?view=sql-server-2017
...
Рейтинг: 0 / 0
05.12.2020, 16:33
    #40024869
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
thesomebody
Щукина Анна
пропущено...
Это что за оракловщина такая? Вы бы хоть документацию про динамический SQL почитали бы для начала...


по делу что-нибудь от вас будет или вы так?

ПС: "Самый простой способ выполнить динамическую инструкцию SQL — выполнить инструкцию EXECUTE IMMEDIATE"
https://docs.microsoft.com/ru-ru/sql/odbc/reference/dynamic-sql?view=sql-server-2017
По делу все сказано. Цитируемая статься к T-SQL не имеет отношения, даже если вам кажется обратное. Конструкции EXECUTE IMMEDIATE в T-SQL нет.
...
Рейтинг: 0 / 0
05.12.2020, 16:46
    #40024873
thesomebody
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
Гавриленко Сергей Алексеевич, спасибо сразу понятно стало. буду использовать EXECUTE(...).
...
Рейтинг: 0 / 0
05.12.2020, 17:28
    #40024881
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
thesomebody
Гавриленко Сергей Алексеевич, спасибо сразу понятно стало. буду использовать EXECUTE(...).

Час от часу не легче. Его задепрекейтили еще лет 10 назад, не меньше.
https://docs.microsoft.com/ru-ru/sql/t-sql/language-elements/execute-transact-sql?view=sql-server-ver15 В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Давно уже все используют sp_executesql
...
Рейтинг: 0 / 0
05.12.2020, 17:36
    #40024884
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
fkthat
thesomebody
Гавриленко Сергей Алексеевич, спасибо сразу понятно стало. буду использовать EXECUTE(...).

Час от часу не легче. Его задепрекейтили еще лет 10 назад, не меньше.
https://docs.microsoft.com/ru-ru/sql/t-sql/language-elements/execute-transact-sql?view=sql-server-ver15 В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется.

Давно уже все используют sp_executesql Зачем вводите в заблуждение?
Там речь идёт о параметре <;number>.
Кстати, его объявили устаревшим для хранимых процедур ещё 100 лет назад...

P.S. Это я по вашей ссылке сходил и прочитал, если что
...
Рейтинг: 0 / 0
05.12.2020, 18:04
    #40024889
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
iap
Зачем вводите в заблуждение?
Там речь идёт о параметре <;number>.

Не суть. Факт то, что уже стопятьсот лет, как советуют sp_ использовать вместо него.
...
Рейтинг: 0 / 0
05.12.2020, 18:20
    #40024891
Гавриленко Сергей Алексеевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
fkthat
iap
Зачем вводите в заблуждение?
Там речь идёт о параметре <;number>.

Не суть. Факт то, что уже стопятьсот лет, как советуют sp_ использовать вместо него.
Кто советует? Зачем, если не нужна параметризация? Особенно, если надо процедуру вызвать?

Хоть одну ссылку на "советы", плз.
...
Рейтинг: 0 / 0
06.12.2020, 00:14
    #40024978
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
помогите исправить скрипт.
fkthat,

sp_executesql использовать избыточно без параметризации. Хотя это и позволяет повторно использовать план запроса, но если запрос не параметризован или не повторяется, то нет смысла.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / помогите исправить скрипт. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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