Server sql se esiste una tabella di drop

Server sql se esiste una tabella di drop

Come probabilmente già saprai, non è possibile creare una tabella in un database se esiste una tabella con un nome simile. Per ovviare a questo, puoi verificare se la tabella esiste e se vero, rilascia la tabella e crea una nuova tabella.

In questo articolo, imparerai come utilizzare le operazioni condizionali SQL. Discuteremo come verificare se esiste una tabella e, se vero, lasciarlo cadere.

Requisiti

Abbiamo testato e implementato gli esempi in un'istanza SQL Server in questa guida. Se vuoi riprodurre un ambiente simile, assicurati di avere:

  1. Microsoft SQL Server 2019
  2. SQL Server Management Studio 18
  3. Modificare le autorizzazioni nel database di destinazione

Una volta che hai i requisiti specificati sopra, possiamo procedere con il tutorial.

Nozioni di base

Prima di imparare a aggiungere come aggiungere una logica condizionale prima di abbandonare una tabella, vediamo cosa succede quando si tenta di far cadere una tabella inesistente in un database.

Considera la query di esempio di seguito:

Usa SalesDB;
Drop table doin_not_exist;

Se proviamo a eseguire la query sopra, SQL Server restituirà un errore MSG 3701:

Logica della condizione - Metodo 1

Il primo metodo che puoi usare quando è necessario eliminare una tabella se esiste è la caduta se esiste una query. Questa query è disponibile solo nella versione SQL Server 2016 e superiore.

La sintassi è come:

Drop tabella [se esiste] db_name.Schema_name.tbl_name;

La query verificherà se la tabella esiste e, se vera, lascerà la lascia cadere; Altrimenti, ignora la dichiarazione di drop.

Per esempio:

Usa SalesDB;
Drop tavolo se esistono dipendenti;

Se esiste la tabella, SQL tenterà di lasciarlo cadere.

Ricorda che le regole SQL per la caduta di una tabella si applicano ancora, anche quando si utilizza la caduta se esiste una query.

Metodo 2 - ID oggetto

Il secondo metodo consiste nell'utilizzare la funzione Object_id (). La funzione restituisce un ID oggetto se esiste il nome specificato.

Il codice di esempio seguente mostra come utilizzare la funzione object_id () per aggiungere la logica condizionale durante l'eliminazione di una tabella.

Usa SalesDB;
If object_id (n'dbo.I dipendenti ', n'u') non sono nulli
Drop Table [DBO].Dipendenti;

Puoi saperne di più sulla funzione Object_id () nella risorsa seguente:

SQL Server Object_id () Documenti di funzione.

Metodo 3 - Schema dell'informazione

Possiamo anche utilizzare lo schema di informazione SQL Server per interrogare se esiste una tabella. Una query di esempio è come mostrato di seguito:

Usa SalesDB;
Se esiste (
Seleziona * da Information_Schema.Tabelle dove table_name = 'dipendenti' e table_schema = 'dbo')
Drop Table [DBO].[Dipendenti];

Nell'esempio sopra, utilizziamo lo schema informativo per verificare se esiste una tabella specificata.

Chiusura

Utilizzando questa guida, hai scoperto vari modi per aggiungere la logica condizionale quando si lascia cadere una tabella in SQL Server. L'aggiunta di dichiarazioni condizionali consente di prevenire errori negli script SQL automatizzati.