Size: a a a

2020 February 25

А

Андрій in sql_ninja
Мда, дб2 ведь 120 уровень. там юзертайпов нету. и стринг_сплит тоже.
Временно сделаю свою функцию и через нее настрою, а потом последую совету @Smatch  и помониторю хранилище, спасибки
источник

В

Вячеслав in sql_ninja
Андрій
ребзя, такая тема,
в БД1 в процедуре А есть список дат (20190112,20190220)
как его передать в параметры табличной функции с БД2?
типа
Use [БД1]
table @a (d date)
select * from [БД2].dbo.tvf_func(@a)

вижу способ с презобразованием в строку с разделителем, или же создания своего типа , при втором случае тип на обе базы добавлять? и не слишком ли это для маленького никому не нужного отчета?
городил уроду с формированием запроса на бд2 по типу того, что в профайлере видно. Суть - трансформировать твой список дат в строку типа

@sql =
'declare @p1 UT_MYTYPE
insert into @p1
values
('20190112')
,('20190220')

exec sp_myproc @p1'

ну и потом экзекьютишь этот запрос на бд2. Если итоговый запрос не получится больше 4000 символов, то будет работать.
юзал вот это для формирования запроса
https://stackoverflow.com/questions/194852/how-to-concatenate-text-from-multiple-rows-into-a-single-text-string-in-sql-serv

Но это такой костыль, что самому стыдно :)
источник

А

Андрій in sql_ninja
Вячеслав
городил уроду с формированием запроса на бд2 по типу того, что в профайлере видно. Суть - трансформировать твой список дат в строку типа

@sql =
'declare @p1 UT_MYTYPE
insert into @p1
values
('20190112')
,('20190220')

exec sp_myproc @p1'

ну и потом экзекьютишь этот запрос на бд2. Если итоговый запрос не получится больше 4000 символов, то будет работать.
юзал вот это для формирования запроса
https://stackoverflow.com/questions/194852/how-to-concatenate-text-from-multiple-rows-into-a-single-text-string-in-sql-serv

Но это такой костыль, что самому стыдно :)
Йой
источник

F

Frankie4Fingers in sql_ninja
источник

F

Frankie4Fingers in sql_ninja
Они чели?
источник

F

Frankie4Fingers in sql_ninja
Записался😎
источник

В

Вячеслав in sql_ninja
Андрій
Йой
ага, как в анеке: "вы что, не умеете забивать гвозди отвёрткой? И называете себя программистом?"
источник

F

Frankie4Fingers in sql_ninja
Андрій
Мда, дб2 ведь 120 уровень. там юзертайпов нету. и стринг_сплит тоже.
Временно сделаю свою функцию и через нее настрою, а потом последую совету @Smatch  и помониторю хранилище, спасибки
Stuff ом через запятую собирай, пихай в таблу, а оттуда вызывай
источник

F

Frankie4Fingers in sql_ninja
SET @cols = STUFF((SELECT distinct ',' + ColumnName 
FROM ##Temp
FOR XML PATH(''), TYPE ).value('.', 'NVARCHAR(MAX)') ,1,1,'')
источник

V

Victor in sql_ninja
Frankie4Fingers
Они чели?
Да, только розовые))
источник
2020 February 26

СЗ

Сергей Зотов in sql_ninja
Андрій
ребзя, такая тема,
в БД1 в процедуре А есть список дат (20190112,20190220)
как его передать в параметры табличной функции с БД2?
типа
Use [БД1]
table @a (d date)
select * from [БД2].dbo.tvf_func(@a)

вижу способ с презобразованием в строку с разделителем, или же создания своего типа , при втором случае тип на обе базы добавлять? и не слишком ли это для маленького никому не нужного отчета?
в функцию передавай строку со своими датами (если я правильно понял у тебя же строка с датами?) , а в самой функции преобразуй  строку во временную таблицу или табличную переменную (как это делается загугли - "sql split string"). А вообще, мне кажется у тебя говнокод
источник

А

Андрій in sql_ninja
Сергей Зотов
в функцию передавай строку со своими датами (если я правильно понял у тебя же строка с датами?) , а в самой функции преобразуй  строку во временную таблицу или табличную переменную (как это делается загугли - "sql split string"). А вообще, мне кажется у тебя говнокод
Мне тоже так кажется, но придется/
источник

СЗ

Сергей Зотов in sql_ninja
Андрій
Мне тоже так кажется, но придется/
откуда ты берёшь строку с датами?
источник

А

Андрій in sql_ninja
Сергей Зотов
откуда ты берёшь строку с датами?
Из ssrs
источник

СЗ

Сергей Зотов in sql_ninja
Андрій
Мне тоже так кажется, но придется/
ты не можешь что ли свои даты найти подзапросом?
источник

А

Андрій in sql_ninja
Сергей Зотов
ты не можешь что ли свои даты найти подзапросом?
Нет канешно.
Из фронта приходять даты, клиент выбирает
источник

А

Андрій in sql_ninja
Из ssrs
источник

F

Frankie4Fingers in sql_ninja
Сергей Зотов
в функцию передавай строку со своими датами (если я правильно понял у тебя же строка с датами?) , а в самой функции преобразуй  строку во временную таблицу или табличную переменную (как это делается загугли - "sql split string"). А вообще, мне кажется у тебя говнокод
Как определил?
источник

DN

Denis Novickiy in sql_ninja
Андрій
Из ssrs
Если ssrs и источник данных - процедура, то только стринг сплит.
источник

TS

Tim Safari in sql_ninja
Андрій
ребзя, такая тема,
в БД1 в процедуре А есть список дат (20190112,20190220)
как его передать в параметры табличной функции с БД2?
типа
Use [БД1]
table @a (d date)
select * from [БД2].dbo.tvf_func(@a)

вижу способ с презобразованием в строку с разделителем, или же создания своего типа , при втором случае тип на обе базы добавлять? и не слишком ли это для маленького никому не нужного отчета?
А процедура из бд2 не может сама подтягивать список из бд1?
источник