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

set @result = exec sp_executesql @mysql

Спасибо!
...
Рейтинг: 0 / 0
Вернуть данные в переменную.
    #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
Вернуть данные в переменную.
    #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
Вернуть данные в переменную.
    #39763373
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим_78Можно пример на пальцах?В хелпе же есть пример, скопируйте его, и меняйте на свои переменные.
...
Рейтинг: 0 / 0
Вернуть данные в переменную.
    #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
Вернуть данные в переменную.
    #39763530
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим_78,
Код: sql
1.
2.
3.
4.
SET @SQLString = 
N'Select	@Result = ' +@ColumnName + '
From	'+quotename(@TableName)+
'Where	ID = 3682'


ну и @ColumnName, @TableName передавать не понятно зачем
...
Рейтинг: 0 / 0
Вернуть данные в переменную.
    #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
Вернуть данные в переменную.
    #39763537
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и вообще мне кажется, что каждый кто начинает писать на sql, сразу начинает с идеи "а не запилить мне универсальную штуку, что бы возвращяла всё что захочу"
...
Рейтинг: 0 / 0
Вернуть данные в переменную.
    #39763542
Максим_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,
Да, такой вариант я как раз и использую.
Но хотелось бы с OUTPUT.
...
Рейтинг: 0 / 0
Вернуть данные в переменную.
    #39763544
Максим_78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,
Так ошибка, если их не передавать: Must declare the scalar variable "@ColumnName".
...
Рейтинг: 0 / 0
Вернуть данные в переменную.
    #39763548
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим_78TaPaK,
Так ошибка, если их не передавать: Must declare the scalar variable "@ColumnName".
ну так убрать и из
@ColumnName nvarchar(100), @TableName nvarchar(1000), @Result nvarchar(max) OUTPUT
...
Рейтинг: 0 / 0
Вернуть данные в переменную.
    #39763550
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Максим_78Konst_One,
Да, такой вариант я как раз и использую.
Но хотелось бы с OUTPUT.

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

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

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

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

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


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