À l'aide de SQL dynamique pour spécifier un nom de colonne par l'ajout d'une variable à une simple requête sql

sql 2005/sql 2008

Declare @temp nvarchar(1000)

set @temp = 'ABC'


select col1,col2 from tableA

Avec une requête select, comment ajouter une variable à la requête select ?

expected output :-

select col1,col2,@temp as [col3] from tableA

Où @temp spécifie le nom d'une colonne dans le tableA.

  • Ce qui ne fonctionne pas avec votre code? Avez-vous des erreurs? Quels sont-ils?
  • Oui, c'est une simple erreur de syntaxe. Il n'y a pas de nom de colonne @temp je la table : tableA. Donc, il va jeter erreur
  • Essayez select col1,col2, " ABC " comme [col3] de la tableA
  • Certains d'appui aux langues cette construction "natif", Par exemple dans Foxpro vous pourriez préfixe de la variable avec un "&", qui serait de dire au compilateur de la concaténation de la valeur dans la requête. Un processus connu sous le nom de la macro de Substitution. Il est très puissant, mais il ne permet pas pour un grand nombre des étapes importantes de un moderne sgbdr et permettre l'injection SQL.
  • je suis d'accord avec Stéphanie Page
InformationsquelleAutor goofyui | 2011-08-19