Как получить имена полей из временной таблицы (SQL Server 2008)

Аргументы шаблона Variadic являются жадными, поэтому, если вы попытаетесь явно указать аргументы шаблона для шаблона, который имеет переменный аргумент, после того, как явные аргументы начнут выделяться пакету переменных, все остальные аргументы выделяются этому пакету. В этом случае A2 не является типом, поэтому, когда компилятор пытается выделить его для пакета Ts..., это вызывает ошибку.

Вы можете перегрузить ваш шаблон, указав enum в качестве первого параметра:

template <A a,typename...Ts >
void foo(Ts...ps) { std::cout << sizeof...(ps); }
template <typename...Ts>
void foo(Ts...ps) { foo<A2>(ps...); }

foo<int,int>(1,2);     // this compiles
foo<A2,int,int>(1,2);  // this compiles
67
задан Michał Powaga 31 January 2013 в 13:25
поделиться

3 ответа

select * from tempdb.sys.columns where object_id =
object_id('tempdb..#mytemptable');
125
ответ дан 24 November 2019 в 14:29
поделиться
select * 
from tempdb.INFORMATION_SCHEMA.COLUMNS
where table_name like '#MyTempTable%'
28
ответ дан 24 November 2019 в 14:29
поделиться

Временные таблицы определены в «tempdb», а имена таблиц «искажены».

Этот запрос должен помочь:

select c.*
from tempdb.sys.columns c
inner join tempdb.sys.tables t ON c.object_id = t.object_id
where t.name like '#MyTempTable%'

Marc

7
ответ дан 24 November 2019 в 14:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: