2014-09-04 6 views
-2

J'ai trois colonnes comme col1, col2, col3serveur SQL mise à jour de requête

Ces valeurs sont stockées dans une @col_name variables

update investment 
set bbg = [email protected]_name 

Je vais mettre cette déclaration dans une boucle de sorte qu'une seule valeur (col1) sera présent dans cette variable

Mais cela donne une erreur. Quelqu'un peut-il m'aider à faire cela?

+0

Pourriez-vous nous écrire le code que vous avez rédigé, s'il vous plaît? – splrs

+1

Quel genre d'erreur? Pouvez-vous donner un exemple de ce que vous essayez de faire? –

+4

Les instructions 'UPDATE' sans clause' WHERE' peuvent être très dangereuses, sauf si vous voulez vraiment mettre à jour toute la table. –

Répondre

0

Impossible. Vous ne pouvez pas avoir le nom du champ dans une variable. Non pris en charge par SQL Server. Ce que vous sauriez si vous voulez prendre la peine de lire l'erreur. Cela vous dit probablement que c'est extrêmement clair.

Vous devrez émettre SQL dynamique

0

Vous devez utiliser SQL dynamique pour ce que vous demandez. Je vous invite également à appliquer une clause pertinente WHERE.

DECLARE @col_name AS VARCHAR(50) 
SET @col_name = 'Col1' -- Or 'Col2' Or 'Col3' 

DECLARE @SQL AS VARCHAR(1000) 
SET @SQL = 'UPDATE investment SET bbg = QUOTENAME(' + @col_name + ')' 

EXEC @SQL