Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Пытаюсь обойти ограничение на вложенные INSERT EXEC / 8 сообщений из 8, страница 1 из 1
10.12.2020, 11:20
    #40026286
Пытаюсь обойти ограничение на вложенные INSERT EXEC
Здравствуйте!

По совету автора , по его второму решению пробую обойти ограничение на количество nested INSERT EXEC. Для этого вне своей процедуры создал связанный сервер(ссылающийся на себя) конструкцией:
Код: sql
1.
2.
3.
4.
5.
use master
go

exec sp_addlinkedserver N'127.0.0.1'
                      , N'SQL Server';


Потом внутри процедуры, которая не хотела выполнять INSERT ... EXEC, пытаюсь таки выполнить INSERT EXEC конструкцией вида:
Код: 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.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
...
	IF OBJECT_ID ('tempdb.dbo.#su5_data') IS NOT NULL DROP TABLE #su5_data
	CREATE TABLE #su5_data(
		[LINK] [int] NOT NULL,
		[C_Alt_Number] [varchar](100) NULL,
		[F_Sale_Categories] [tinyint] NULL,
		[ssd_name] [varchar](250) NULL,
		[sd_name] [varchar](150) NULL,
		[ss_name] [varchar](150) NULL,
		[C_Network_Path] [varchar](1000) NULL,
		[C_Number] [varchar](306) NULL,
		[D_Date] [smalldatetime] NULL,
		[C_FIO] [nvarchar](max) NOT NULL,
		[C_Name1] [nvarchar](max) NULL,
		[C_Person] [varchar](2) NOT NULL,
		[C_Address1] [varchar](350) NULL,
		[N_Quantity] [decimal](18, 4) NULL,
		[N_Amount] [money] NULL,
		[N_Amount_Pay] [money] NULL,
		[N_Quantity_Pay] [decimal](19, 6) NULL,
		[N_Debt] [money] NULL,
		[ell_Name] [varchar](50) NULL,
		[d_date_sud] [smalldatetime] NULL,
		[D_Done_Date] [smalldatetime] NULL,
		[C_Reason_Types] [varchar](20) NULL,
		[C_Judgement_Decision] [varchar](255) NULL,
		[D_Last_Pay] [smalldatetime] NULL,
		[C_Notes] [varchar](4000) NULL,
		[C_Status] [varchar](50) NULL
	) 

	INSERT INTO #su5_data(
	[LINK]
      ,[C_Alt_Number]
      ,[F_Sale_Categories]
      ,[ssd_name]
      ,[sd_name]
      ,[ss_name]
      ,[C_Network_Path]
      ,[C_Number]
      ,[D_Date]
      ,[C_FIO]
      ,[C_Name1]
      ,[C_Person]
      ,[C_Address1]
      ,[N_Quantity]
      ,[N_Amount]
      ,[N_Amount_Pay]
      ,[N_Quantity_Pay]
      ,[N_Debt]
      ,[ell_Name]
      ,[d_date_sud]
      ,[D_Done_Date]
      ,[C_Reason_Types]
      ,[C_Judgement_Decision]
      ,[D_Last_Pay]
      ,[C_Notes]
      ,[C_Status]
	)
	select * from OpenQuery ( [127.0.0.1], 'EXEC EE.RPT_107_Statements_NoSubscr @N_Date_Mode = 0, @D_Date0 = ' + @begin_date +	', @D_Date = ' + @end_date + ', @C_SubDivisions = ' + @C_Divs +	', @F_Network_Items = NULL, @F_Partner_Types = NULL, @F_Networks = ' + @C_Networks )
...


и получаю ошибку:
авторНеправильный синтаксис около конструкции "+".
ссылающейся на первый + в последней строке, где @... - это переменные моей процедуры

В чем ошибка конкатенации, подскажите, пожалуйста
...
Рейтинг: 0 / 0
10.12.2020, 11:27
    #40026290
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь обойти ограничение на вложенные INSERT EXEC
Борис Гаркун,

читайте инструкцию... С чего Вы решили, что такой синтаксис допустим?
...
Рейтинг: 0 / 0
10.12.2020, 11:34
    #40026293
Пытаюсь обойти ограничение на вложенные INSERT EXEC
Владислав Колосов, какую из? :)
...
Рейтинг: 0 / 0
10.12.2020, 11:38
    #40026295
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь обойти ограничение на вложенные INSERT EXEC
https://docs.microsoft.com/ru-ru/sql/t-sql/functions/openquery-transact-sql?view=sql-server-ver15

авторВ качестве аргументов в функции OPENQUERY нельзя использовать переменные.
...
Рейтинг: 0 / 0
10.12.2020, 11:47
    #40026297
Пытаюсь обойти ограничение на вложенные INSERT EXEC
Спасибо... Какие-то еще могут быть варианты получить данные от чужой процедуры(имеющей параметры), код которой изменять нельзя?
...
Рейтинг: 0 / 0
10.12.2020, 12:03
    #40026307
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь обойти ограничение на вложенные INSERT EXEC
Борис Гаркун
Какие-то еще могут быть варианты получить данные от чужой процедуры(имеющей параметры), код которой изменять нельзя?
Код: sql
1.
2.
insert into ...
 exec [127.0.0.1].MyDB.EE.RPT_107_Statements_NoSubscr @N_Date_Mode = 0, ...
...
Рейтинг: 0 / 0
10.12.2020, 12:11
    #40026310
Пытаюсь обойти ограничение на вложенные INSERT EXEC
invm, спасибо!
МатроскинУра! Заработало!
...
Рейтинг: 0 / 0
10.12.2020, 15:32
    #40026415
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пытаюсь обойти ограничение на вложенные INSERT EXEC
Борис Гаркун
Владислав Колосов, какую из? :)


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


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