Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Вернуть данные в переменную. / 16 сообщений из 16, страница 1 из 1
23.01.2019, 11:08
    #39763297
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Добрый день!
Необходимо результат селекта выполняемый через EXEC присвоить переменной.
Пробую через INSERT (вроде нормально, устраивает) во временную таблицу, видимо возможно также и через функцию.
А есть ещё варианты? Что-то в этом направлении:

set @result = exec sp_executesql @mysql

Спасибо!
...
Рейтинг: 0 / 0
23.01.2019, 11:12
    #39763304
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Максим_78,

OUT | OUTPUT
Indicates that the parameter is an output parameter. Use OUTPUT parameters to return values to the caller of the procedure. text, ntext, and image parameters cannot be used as OUTPUT parameters, unless the procedure is a CLR procedure. An output parameter can be a cursor placeholder, unless the procedure is a CLR procedure. A table-value data type cannot be specified as an OUTPUT parameter of a procedure
...
Рейтинг: 0 / 0
23.01.2019, 12:43
    #39763353
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Читаю, но что-то не могу разобраться, какие параметры необходимо передавать в EXEC.
Можно пример на пальцах?
Скажем:

declare
@result nvarchar(max),
@mysql nvarchar(max)
set @mysql = N'
Select @MyColumn
From @MyTable
Where ID = 1
'
EXECUTE sp_executesql @mysql .......
...
Рейтинг: 0 / 0
23.01.2019, 12:57
    #39763373
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Максим_78Можно пример на пальцах?В хелпе же есть пример, скопируйте его, и меняйте на свои переменные.
...
Рейтинг: 0 / 0
23.01.2019, 14:47
    #39763520
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Господа, только сильно не пинайте пожалуйста.
Ну не заносятся у меня данные в результирующую переменную, только запрос выполняется, а нужно наоборот.

DECLARE
@SQLString nvarchar(400),
@TableName nvarchar(1000),
@Result nvarchar(max),
@ColumnName nvarchar(100)

set @ColumnName = N'[Парал. согл. - 2]'
set @TableName = N'list_dms_contracts_fos__WSSC_AgreementMatrix_661'

SET @SQLString =
N'Select @ColumnName
From '+quotename(@TableName)+
'Where ID = 3682'

EXECUTE sp_executesql @SQLString, N'@ColumnName nvarchar(100), @TableName nvarchar(1000), @Result nvarchar(max) OUTPUT', @ColumnName, @TableName, @Result OUT
...
Рейтинг: 0 / 0
23.01.2019, 14:51
    #39763530
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Максим_78,
Код: sql
1.
2.
3.
4.
SET @SQLString = 
N'Select	@Result = ' +@ColumnName + '
From	'+quotename(@TableName)+
'Where	ID = 3682'


ну и @ColumnName, @TableName передавать не понятно зачем
...
Рейтинг: 0 / 0
23.01.2019, 14:54
    #39763534
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
адаптируйте под себя
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
DECLARE @DBName varchar(255) 
DECLARE @q varchar(max) 
CREATE table #tempTable(myParam1 int, -- other params)

SET @DBName = 'my_db_name'
SET @q = 'insert into #tempTable exec ['+@DBName+'].[dbo].[my_procedure]'
EXEC(@q)

SELECT * FROM #tempTable
drop table #tempTable
...
Рейтинг: 0 / 0
23.01.2019, 14:56
    #39763537
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
и вообще мне кажется, что каждый кто начинает писать на sql, сразу начинает с идеи "а не запилить мне универсальную штуку, что бы возвращяла всё что захочу"
...
Рейтинг: 0 / 0
23.01.2019, 15:01
    #39763542
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Konst_One,
Да, такой вариант я как раз и использую.
Но хотелось бы с OUTPUT.
...
Рейтинг: 0 / 0
23.01.2019, 15:02
    #39763544
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
TaPaK,
Так ошибка, если их не передавать: Must declare the scalar variable "@ColumnName".
...
Рейтинг: 0 / 0
23.01.2019, 15:04
    #39763548
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Максим_78TaPaK,
Так ошибка, если их не передавать: Must declare the scalar variable "@ColumnName".
ну так убрать и из
@ColumnName nvarchar(100), @TableName nvarchar(1000), @Result nvarchar(max) OUTPUT
...
Рейтинг: 0 / 0
23.01.2019, 15:05
    #39763550
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Максим_78Konst_One,
Да, такой вариант я как раз и использую.
Но хотелось бы с OUTPUT.

у тебя резалтсет - это произвольный набор, никакой OUTPUT тебе тут не поможет
...
Рейтинг: 0 / 0
23.01.2019, 15:06
    #39763552
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Konst_OneМаксим_78Konst_One,
Да, такой вариант я как раз и использую.
Но хотелось бы с OUTPUT.

у тебя резалтсет - это произвольный набор, никакой OUTPUT тебе тут не поможет
а если ID это PK?
...
Рейтинг: 0 / 0
23.01.2019, 15:10
    #39763559
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
частный случай, тогда да.

может тогда ТС нужно для универсальности FOR XML AUTO и тогда можно xml вернуть всегда
...
Рейтинг: 0 / 0
23.01.2019, 15:14
    #39763565
Максим_78
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
TaPaKи вообще мне кажется, что каждый кто начинает писать на sql, сразу начинает с идеи "а не запилить мне универсальную штуку, что бы возвращяла всё что захочу"

Это да)))
Ну тут действительно так нужно, правда правда.
...
Рейтинг: 0 / 0
23.01.2019, 15:19
    #39763575
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вернуть данные в переменную.
Максим_78TaPaKи вообще мне кажется, что каждый кто начинает писать на sql, сразу начинает с идеи "а не запилить мне универсальную штуку, что бы возвращяла всё что захочу"

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


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