Maison > base de données > tutoriel mysql > Résumer l'utilisation des tables temporaires et des curseurs SQL Server

Résumer l'utilisation des tables temporaires et des curseurs SQL Server

巴扎黑
Libérer: 2017-05-21 18:38:27
original
1384 Les gens l'ont consulté

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
Copier après la connexion

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'
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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'
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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'
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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
Copier après la connexion
Copier après la connexion
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal