Buscar este blog

jueves, 4 de junio de 2009

COMO SABER SI EXISTE UNA TABLA EN SQL SERVER 2005 DESDE VB.NET

Como les habia comentado, no me gusta pasar mucho tiempo buscando como hacer algo que deberia ser sencillo. Esta vez me tocaba buscar como hacer para saber si existe o no una tabla en SQL Server 2005 desde VB.NET 2008.

Estuve buscando durante aproximadamente 3 horas, viendo como conectarse con la libreria ADO, ejecutar la cadena de SQL con el metodo executeNonQuery, capturar el resultado de este con un listener y un monton de cosas, y al final escogi irme por un camino mas sencillo: SQL Server debia de almacenar los datos de las tablas que existian en algun lugar y yo sabia el nombre exacto de la tabla que queria buscar; sabia el nombre del esquema, del catalogo y el nombre de la tabla, asi que todo lo que tenia que hacer era una consulta a ese lugar donde SQL Server almacena el nombre de las tablas, y pues resulta que la consulta era tan sencilla como esto:

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = 'myCatalog' AND
TABLE_SCHEMA = 'mySchema' AND
TABLE_NAME = 'myTable';


Y listo, al final al pasar esto a codigo para saber si existia o no la tabla, todo quedo de esta forma:

Dim sqlString As String = "SELECT COUNT(1) FROM INFORMATION_SCHEMA.TABLES "
sqlString &= "WHERE TABLE_CATALOG = 'myCatalog' AND "
sqlString &= "TABLE_SCHEMA = 'mySchema' AND "
sqlString &= "TABLE_NAME = 'myTable'"


Dim objCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(sqlString, objConnection)
Dim exist As Integer = Integer.Parse(objCommand.ExecuteScalar().ToString())


If (exist = 1) Then
MsgBox("SI EXISTE!!!")
ElseIf (exist = 0) Then
MsgBox("NO EXISTE!!!")
End If


Espero que les sea de utilidad y que esto los pueda ayudar a solucionar sus problemas.

No hay comentarios: