Excel ne reconnaissant pas les variables dans l'instruction SQL

J'écris une instruction SQL dans une feuille Excel standard (pas VBA), qui peut être copiée et collée à partir d'une cellule dans SQL Server Management Studio.

Pour qu'il fonctionne, cependant, je dois déclarer des variables (par exemple, @userid). Habituellement, Excel n'a pas de problème avec moi en utilisant des variables, mais lorsque je les place dans une déclaration IF, cela me dit que c'est une «fonction invalide».

Par exemple, une partie de ma requête SQL ressemble à ceci:

="VALUES("&IF(Keys!B5<>"", Keys!B5, "@spid")&", @sid, GETDATE())" 

Pour l'instant, j'ai dû append des citations autour des variables. Malheureusement, cela signifie que, lors du collage dans SQL Server Management Studio, vous devez ensuite supprimer les guillemets autour des variables afin qu'elles soient reconnues comme des variables et non des strings. Ceci est incommode, car ma feuille de calcul est censée être conçue pour rendre les loggings plus rapides et plus faciles.

Y a-t-il un moyen de contourner cela?

Voici quelques exemples de travail possibles que vous pourriez utiliser.

  1. Utilisez '@spid dans Key! B5. La case unique utilisée comme propriété Range.PrefixCharacter ne sera pas ajoutée à la string concaténée.
  2. Utilisez spid dans Key! B5 et placez le @ dans les parties de la string de formule.
    ="VALUES(@"&IF(Keys!B5<>"", Keys!B5, "spid")&", @sid, GETDATE())"
  3. Identique à 2. mais la key de format! B5 comme avec un masque de format de numéro personnalisé de \@@ Le \ est un caractère d'échappement pour créer le premier @ littéral. Cela montrera la valeur en tant que @spid lorsque la cellule contient effectivement spid .