Maison >base de données >tutoriel mysql >Résumer l'utilisation des tables temporaires et des curseurs SQL Server
Cet article présente principalement un résumé de l'utilisation des tables et curseurs temporaires de Sql Server. Les amis dans le besoin peuvent s'y référer
1 Table temporaire
Temporaire. table et les tables permanentes sont similaires, mais les tables temporaires sont stockées dans tempdb et sont automatiquement supprimées lorsqu'elles ne sont plus utilisées.
Les tables temporaires ont deux types : locales et globales
Comparaison des deux :
Le nom de la table temporaire locale commence par le symbole (#)
Uniquement pour La connexion utilisateur actuelle est visible
Supprimée automatiquement lorsque l'instance utilisateur se déconnecte
Le nom de la table temporaire globale commence par le symbole (##)
Visible par tout utilisateur
Quand tous références La table est automatiquement supprimée lorsque l'utilisateur se déconnecte
En fait, la table temporaire locale a un nom unique dans tempdb
Par exemple, nous utilisons sa pour nous connecter à un analyseur de requêtes, puis utilisons sa pour nous connecter vers un autre analyseur de requêtes
Nous autorisons les instructions suivantes dans les deux analyseurs de requêtes :
use pubs go select * into #tem from jobs
Création de 2 tables temporaires locales pour 2 utilisateurs respectivement
Nous pouvons voir à partir de l'instruction de requête suivante
SELECT * FROM [tempdb].[dbo].[sysobjects] where xtype='u'
pour déterminer l'existence de la table temporaire :
if object_id('tempdb..#tem') is not null begin print 'exists' end else begin print 'not exists' end
Conseils spéciaux :
1. La table temporaire locale créée dans l'instruction SQL dynamique est automatiquement supprimée après l'exécution de l'instruction
, donc l'instruction suivante n'obtiendra pas l'ensemble de résultats
exec('select * into #tems from jobs') select * from #tems
2. La table temporaire utilisée dans la procédure stockée sera automatiquement supprimée
une fois le processus terminé, mais il est recommandé de la supprimer explicitement, ce qui est bénéfique pour le système
ii. Curseurs
Les curseurs ont également deux types : locaux et globaux
Curseurs locaux : utilisés uniquement dans la phase de déclaration
Curseurs globaux : peuvent être utilisés dans le processus de déclaration et en dehors des déclencheurs
pour déterminer l'existence :
if CURSOR_STATUS('global','游标名称') =-3 and CURSOR_STATUS('local','游标名称') =-3 begin print 'not exists' end SELECT * FROM [tempdb].[dbo].[sysobjects] where xtype='u'
Déterminer l'existence de la table temporaire :
if object_id('tempdb..#tem') is not null begin print 'exists' end else begin print 'not exists' end
Conseils spéciaux :
1. La table temporaire locale créée dans l'instruction SQL dynamique est automatiquement supprimée après l'exécution de l'instruction
, donc l'instruction suivante n'obtiendra pas l'ensemble de résultats
exec('select * into #tems from jobs') select * from #tems
2. La table temporaire utilisée dans la procédure stockée sera automatiquement supprimée
une fois le processus terminé, mais il est recommandé de la supprimer explicitement, ce qui est bénéfique pour le système
ii. Curseurs
Les curseurs ont également deux types : locaux et globaux
Curseurs locaux : utilisés uniquement dans la phase de déclaration
Curseurs globaux : peuvent être utilisés dans le processus de déclaration et en dehors des déclencheurs
pour déterminer l'existence :
if CURSOR_STATUS('global','游标名称') =-3 and CURSOR_STATUS('local','游标名称') =-3 begin print 'not exists' end SELECT * FROM [tempdb].[dbo].[sysobjects] where xtype='u'
Déterminer l'existence de la table temporaire :
if object_id('tempdb..#tem') is not null begin print 'exists' end else begin print 'not exists' end
Conseils particuliers :
1. La table temporaire locale créée dans l'instruction SQL dynamique est automatiquement supprimée après l'exécution de l'instruction
, donc l'instruction suivante n'obtiendra pas l'ensemble de résultats
exec('select * into #tems from jobs') select * from #tems
2. La table temporaire utilisée dans la procédure stockée sera automatiquement supprimée
une fois le processus terminé, mais il est recommandé de la supprimer explicitement, ce qui est bénéfique pour le système
ii. Curseurs
Les curseurs ont également deux types : locaux et globaux
Curseurs locaux : utilisés uniquement dans la phase de déclaration
Curseurs globaux : peuvent être utilisés dans le processus de déclaration et en dehors des déclencheurs
pour déterminer l'existence :
if CURSOR_STATUS('global','游标名称') =-3 and CURSOR_STATUS('local','游标名称') =-3 begin print 'not exists' end
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!