Le nom d'une table temporaire telle que # t1 peut être déterminée en utilisantComment déterminer le nom interne de la variable d'une valeur de table dans MS SQL Server 2005
select @TableName = [Name]
from tempdb.sys.tables
where [Object_ID] = object_id('tempDB.dbo.#t1')
Comment puis-je trouver le nom d'une table des variables d'une valeur , soit déclarée par
declare @t2 as table (a int)
le but est d'être en mesure d'obtenir méta-informations sur la table, en utilisant quelque chose comme
select @Headers = dbo.Concatenate('[' + c.[Name] + ']')
from sys.all_columns c
inner join sys.tables t
on c.object_id = t.object_id
where t.name = @TableName
bien que pour les tables temporaires, vous devez regarder tempdb.sys.tables
au lieu de sys.tables
. Où recherchez-vous les variables de valeur table?
Je me rends compte maintenant que je ne peux pas faire ce que je voulais faire, ce qui est d'écrire une fonction générique pour la table de mise en forme des variables évaluées dans les tables html. Pour commencer, dans le serveur SQL 2005, vous ne pouvez pas passer la table des paramètres évalués:
http://www.sqlteam.com/article/sql-server-2008-table-valued-parameters
Par ailleurs, dans le serveur SQL 2008, les paramètres doivent être fortement typé, de sorte que vous saurez toujours le nombre et le type de colonnes.
-1 Ceci est un mythe. [Ma réponse montre que c'est possible] (http://stackoverflow.com/a/8561729/73226) –