Question

Je conversion SQL de Teradata à SQL Server

Teradata, ils ont le format

SELECT col1, col2
FROM table1
INTO @variable1, @variable2

Dans SQL Server, j'ai trouvé

SET @variable1 = (
SELECT col1 
FROM table1
);

Cela ne permet une seule colonne / variable par déclaration. Comment attribuer 2 ou plusieurs variables à l'aide d'une seule instruction SELECT?

Était-ce utile?

La solution

SELECT @variable1 = col1, @variable2 = col2
FROM table1

Autres conseils

SELECT @var = col1,
       @var2 = col2
FROM   Table

Voici quelques informations intéressantes sur SET / SELECT

  
      
  • SET est la norme ANSI pour l'attribution variable SELECT n'est pas.
  •   
  • SET ne peut assigner une variable à la fois, SELECT peut faire plusieurs   missions à la fois.
  •   
  • Si l'attribution d'une requête, SET ne peut attribuer une valeur scalaire. Si la   requête retourne plusieurs valeurs / rangées   puis SET soulèvera une erreur. SÉLECTIONNER   attribuera une des valeurs à la   variable et cacher le fait que   plusieurs valeurs ont été retournés (si   vous auriez probablement jamais savoir pourquoi quelque chose   qui se passait mal d'ailleurs - se amuser   dépannage de celui-là)
  •   
  • Lors de l'attribution d'une requête s'il n'y a pas de valeur retournée alors SET   attribuer NULL, où SELECT ne sera pas   faire du tout l'affectation (de sorte que le   variable ne sera pas modifiée à partir de son   valeur précédente)
  •   
  • En ce qui concerne les différences de vitesse - il n'y a pas de différences directes entre SET   et SELECT. Cependant la capacité de SELECT   pour effectuer plusieurs tâches dans un   tir ne donne une légère vitesse   avantage sur SET.
  •   
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top