Le nom de la table est Scores
.
Est-il correct de faire ce qui suit?
IF EXISTS(SELECT *
FROM dbo.Scores)
DROP TABLE dbo.Scores
sql-server
tsql
tmaster
la source
la source
'U'
second paramètre signifie apparemment " Rechercher uniquement les objets de ce nom qui sont des tables". Une seule source . CeOBJECT_ID('TableName')
n'est donc pas faux , mais ce n'est pas incroyablement précis non plus, donc'U'
dans l'excellente réponse de @ Martin.À partir de SQL Server 2016, vous pouvez utiliser
Référence: DROP IF EXISTS - nouveauté dans SQL Server 2016
Il sera bientôt dans la base de données SQL Azure.
la source
La méthode ANSI SQL / multiplateforme consiste à utiliser INFORMATION_SCHEMA , qui a été spécialement conçu pour interroger les métadonnées sur les objets dans les bases de données SQL.
La plupart des serveurs SGBDR modernes offrent au moins une prise en charge de base de INFORMATION_SCHEMA, notamment: MySQL , Postgres , Oracle , IBM DB2 et Microsoft SQL Server 7.0 (et versions ultérieures) .
la source
if exists
ansi est-il conforme?J'en ai vu tellement qui ne fonctionnent pas vraiment. lorsqu'une table temporaire est créée, elle doit être supprimée de tempdb!
Le seul code qui fonctionne est:
la source
dbo
pourtempdb
faire ce travail. Je voudrais également suggérer d'ajouter le'u'
comme mentionné dans les commentaires de la réponse acceptée. Ainsi, la déclaration IF complète ressemblerait à ceci:IF OBJECT_ID('tempdb..#temp', 'U')
Dans SQL Server 2016 (13.x) et supérieur
Dans les versions antérieures
U est ton
table type
la source
Ou:
la source
if exists (select * from sys.tables where name = 'Scores') drop table Scores
J'espère que ça aide:
la source
J'ai écrit un petit UDF qui renvoie 1 si son argument est le nom d'une table existante, 0 sinon:
Pour supprimer la table
User
si elle existe, appelez-la ainsi:la source
C'est simple:
où
dbo.TableName
est votre table souhaitée et «U» esttype
de votretable
.la source
la source
J'utilise:
la source
Il existe un moyen plus simple
la source
Un meilleur moyen visuel et facile, si vous utilisez Visual Studio, ouvrez simplement la barre de menus,
il devrait s'ouvrir comme indiqué ici
Sélectionnez et cliquez avec le bouton droit sur le tableau que vous souhaitez supprimer, puis supprimez. Un tel écran devrait être affiché. Cliquez sur Mettre à jour la base de données pour confirmer.
Cette méthode est très sûre car elle vous donne la rétroaction et vous avertira de toute relation de la table supprimée avec d'autres tables.
la source
SQL
, non liée àVisual Studio
. Par conséquent, cette réponse est sans rapport avec cette question.Faites comme ça, c'est le moyen le plus simple.
qry
sera votre propre requête, tout ce que vous voulez dans la liste de sélection.la source