Je veux exécuter une requête avec concaténation de deux colonnes, j'ai donc fait ceci:
Select
Id, PtName + ' ('+Investigation+')' as PtName, Y, M, D, PtCode
From
DiagMain
Mais lorsque j'essaie de paramétrer cette requête, cela ne fonctionne pas.
Comme ça:
declare @Query nvarchar(MAX)
set @Query = 'Select Id, PtName + ''( +''Investigation''+ )'' as PtName, Y, M, D, Sex, PtCode FROM DiagMain'
Exec(@Query)
Qu'est-ce que je fais mal ici?
2 réponses
Si vous devez exécuter la requête ci-dessus, remplacez votre Exec(@Query)
par exec sp_executesql @Query
car pour exécuter une requête dynamique, vous devez appeler la procédure intégrée sql. Donc, la requête que vous devez exécuter serait la suivante
declare @Query nvarchar(MAX)
set @Query = 'Select Id, PtName + ''( +''Investigation''+ )'' as PtName, Y, M, D, Sex, PtCode FROM DiagMain'
exec sp_executesql @Query
Codage heureux :-)
DECLARE @Query NVARCHAR(MAX)
SET @Query ='Select Id, PtName + '' (''+Investigation+'')'' as PtName, Y, M, D, Sex, PtCode FROM DiagMain'
PRINT @Query
Exec(@Query)
De nouvelles questions
sql
Le langage de requête structuré (SQL) est un langage permettant d'interroger des bases de données. Les questions doivent inclure des exemples de code, une structure de table, des exemples de données et une balise pour l'implémentation du SGBD (par exemple MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, etc.) utilisés. Si votre question concerne uniquement un SGBD spécifique (utilise des extensions / fonctionnalités spécifiques), utilisez plutôt la balise de ce SGBD. Les réponses aux questions marquées avec SQL doivent utiliser le standard SQL ISO / IEC.