Je veux utiliser des citations simples dans une instruction SQL transact, puis exécutez cette instruction.
Par exemple, ma requête est la suivante: p> maintenant je veux utiliser comme ceci: p> Ce ne fonctionne pas, et cette erreur s'est produite: p> Nom de colonne invalide '1' p>
blockQuote> Je sais que le problème est des citations à gauche et à droite du 1 p> Il s'agit d'un échantillon et je souhaite utiliser de cette manière à une grande requête p> de Cours, je veux utiliser une variable locale à la place par exemple '1' et ma variable locale est Varchar P> aucune idée? P> P>
6 Réponses :
Utilisez des tiques doubles pour les échapper:
Declare @SQLQuery AS NVarchar(4000) Declare @Id AS NVarchar(3) SET @Id = '1' SET @SQLQuery = ' Select * FROM MyTable WHERE MyTable.Id= ''' + @Id + '''' Execute (@SQLQuery)
J'ai utilisé de cette façon, mais pas travaillé, et aucun enregistrement n'est retourné
Doubler les guillemets simples dans la citation!
Il suffit d'échapper aux citations:
Changer p> à p> ** EDIT ** p> Pour inclure une variable locale Dans le résultat, vous pouvez mettre à jour votre requête comme celle-ci: p>
Merci, ce travail pour la valeur '1', mais lorsque j'utilise une variable locale (par exemple @ID), aucun enregistrement n'est retourné. Comme ceci: 'Sélectionnez * de MyTable où MyTable.Id =' '+ @ID +' ''. Bien sûr, ma variable est Varchar
Cela aurait été préférable de préciser que vous souhaitiez utiliser une variable locale dans votre question initiale.
Mise à jour de la réponse - Il suffit de convertir votre variable pour vous assurer que vous traitez avec les types corrects. Vous voudrez probablement aussi regarder en utilisant des paramètres plutôt que dynamiques SQL.
Enveloppez la citation unique en plus similaire à '' ' code> et les tics vont également fonctionner. P>
Essayez d'utiliser des guillemets à la place:
SET @SQLQuery = "Select * FROM MyTable WHERE MyTable.Id = '" + @Id + "'"
Double-citations ne fonctionne pas pour créer des déclarations en T-SQL et le caractère autorisé est une citation unique
Pour créer un code plus lecteurs, j'utilise une variable pour la citation unique: / flemming p> p>