Eliminar tabla si existe

Eliminar tabla si existe

¿Cómo colocar una tabla en database.mdf si existe? La tabla existe en la base de datos, pero no puedo soltarla y obtengo un error:

System.Data.SqlClient.SqlException: 'Sintaxis incorrecta cerca de ''Talise Company-a''.'

Parece que el problema es mi cadena symbolName porque cuando creo una tabla de "prueba" y uso "prueba" en lugar de la cadena, funciona bien

Captura de pantalla

string symbolName = dt.Rows[1][0].ToString();

SqlConnection condb2 = new SqlConnection(strConnection);

condb2.Open();
SqlCommand cmd2 = new SqlCommand("IF EXISTS(SELECT * FROM ['" + symbolName + "']) DROP ['" + symbolName + "']", condb2);
cmd2.ExecuteNonQuery();

condb2.Close();
Mostrar la mejor respuesta

Deberías usar DROP TABLE

 DROP TABLE  ['" + symbolName + "']"

y podrías usar también

DROP TABLE  IF EXISTS 

evitar la selección inútil

https://docs .microsoft.com/it-it/sql/t-sql/statements/drop-table-transact-sql

 SqlCommand cmd2 = new SqlCommand("IF EXISTS(SELECT * FROM ['" + symbolName + 
        "']) DROP TABLE ['" + symbolName + "']", condb2);

o a partir de SQL Server 2016 CTP3 puede usar esta característica

 SqlCommand cmd2 = new SqlCommand(" DROP TABLE ['" + symbolName + "']  IF EXISTS", condb2);

Tal vez actualice mi código porque soy tan novato en SQL al menos puedo entender mucho mejor

System.Data.SqlClient.SqlException: 'Sintaxis incorrecta cerca de 'EXISTE'.'

A partir de SQL Server 2016 CTP3, puede usar esta función. Respuesta actualizada. Si tiene una versión anterior, puede usar la primera.

Muchas gracias, te debo un representante.

IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID('TABLE_NAME') AND type IN ('U'))
    DROP TABLE TABLE_NAME

O simplemente podría usar la vista más enfocada sys.tables: IF EXISTS (SELECT * FROM sys.tables WHERE Name = N'TABLE_NAME')...

Olvidaste mencionar la palabra de la tabla después de soltar la palabra.

 IF EXISTS(SELECT * FROM ['" + symbolName + "']) DROP Table ['" + symbolName + "']", condb2