powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Можно ли процедуре которая возвращает набор колонок (типа отчет), указать перечень колонок
6 сообщений из 6, страница 1 из 1
Можно ли процедуре которая возвращает набор колонок (типа отчет), указать перечень колонок
    #39684351
kolyady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тобиш процедура возвращает например 5 колонок , а мне нужна только 1 из них. Могули я перед вставкой во времянку указать что не 5 а 1 колонку вставить?
...
Рейтинг: 0 / 0
Можно ли процедуре которая возвращает набор колонок (типа отчет), указать перечень колонок
    #39684355
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kolyady, можно. Через динамический sql.
Но учти, это чревато инъекциями.
...
Рейтинг: 0 / 0
Можно ли процедуре которая возвращает набор колонок (типа отчет), указать перечень колонок
    #39684372
kolyady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,
скиньте ссылку на пример или визуализируйте как нибудь, буду благодарен
...
Рейтинг: 0 / 0
Можно ли процедуре которая возвращает набор колонок (типа отчет), указать перечень колонок
    #39684387
Владимир Затуливетер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolyady,

Код: 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.
drop proc if exists dbo.DynamicSP 
go

drop type if exists dbo.tvpColumnsList
go

create type dbo.tvpColumnsList as table (
	ColumnName nvarchar(128) primary key
)
go

create proc dbo.DynamicSP 
	@ColumnList dbo.tvpColumnsList readonly
as 
	set nocount on; 

	declare @ColumnsListStr nvarchar(max) = ( 
		select ', ' + ColumnName 
		from @ColumnList 
		where ColumnName in ( 
			-- боишся инъекций, перечисли все возможные столбцы тут
			'Col1', 'Col2', 'Col3' --, ...
		)
		for xml path('')
	)

	declare @Cmd nvarchar(max) = N'	
		select id ' + @ColumnsListStr + '
		from dbo.tableName
	'

	print @Cmd

	exec sys.sp_executesql @Cmd, N' -- параметры если необходимо '

go

--вызов
declare @ColumnList dbo.tvpColumnsList
insert into @ColumnList ( ColumnName )
values ('Col1'), ('Col3')
exec dbo.DynamicSP @ColumnList = @ColumnList
...
Рейтинг: 0 / 0
Можно ли процедуре которая возвращает набор колонок (типа отчет), указать перечень колонок
    #39684389
Владимир Затуливетер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще задачу бы полностью описали.
Мне кажется вам в место процедуры достаточно функцию заюзать и выбирать необходимые столбцы.
И еще если будете делать фунцию, делайте инлайн по возможности.
...
Рейтинг: 0 / 0
Можно ли процедуре которая возвращает набор колонок (типа отчет), указать перечень колонок
    #39684427
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Динамич. СКЛ необязателен.
Можно просто по IF выдавать разные select * INTO xxx. При условии, что времянка не нужна для чтения снаружи.

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


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