Maison > base de données > tutoriel mysql > Comment puis-je insérer dynamiquement des variables de table dans des instructions SQL dans SQL Server 2008 ?

Comment puis-je insérer dynamiquement des variables de table dans des instructions SQL dans SQL Server 2008 ?

Susan Sarandon
Libérer: 2025-01-10 16:59:44
original
776 Les gens l'ont consulté

How Can I Dynamically Insert Table Variables into SQL Statements in SQL Server 2008 ?

Intégration de variables de table dans Dynamic SQL dans SQL Server 2008 et versions ultérieures

La création de requêtes SQL dynamiques dans SQL Server 2008 et les versions ultérieures nécessite souvent l'incorporation de variables de table. Cependant, leur inclusion directe entraîne fréquemment des erreurs de « variable de table non déclarée ».

La solution réside dans l'exploitation des paramètres table. Ces paramètres permettent de transmettre des variables de table en SQL dynamique sans modifier les tables de base.

Examinons un problème courant :

<code class="language-sql">set @col_name =  'Assoc_Item_' 
              + Convert(nvarchar(2), @curr_row1);

set @sqlstat = 'update @RelPro set ' 
             + @col_name 
             + ' = (Select relsku From @TSku Where tid = ' 
             + Convert(nvarchar(2), @curr_row1) + ') Where RowID = ' 
             + Convert(nvarchar(2), @curr_row);

Exec(@sqlstat);</code>
Copier après la connexion

Ce code échouera car @RelPro et @TSku ne sont pas reconnus dans le contexte SQL dynamique. Pour transmettre correctement @TSku, utilisez un paramètre table :

<code class="language-sql">EXEC sp_executesql
  N'SELECT * FROM @T',
  N'@T MyTable READONLY',
  @T=@TSku;</code>
Copier après la connexion

Ici, @TSku est transmis en tant que paramètre en lecture seule (READONLY) à sp_executesql. Le paramètre @T agit comme un espace réservé dans l'instruction SQL dynamique. Cette méthode intègre proprement les variables de table dans vos requêtes dynamiques, évitant ainsi les erreurs de déclaration et garantissant une exécution fluide. Cette approche fournit un moyen robuste et efficace de gérer les requêtes SQL dynamiques impliquant des variables de table.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal