Hola:

gracias por responder... pero mi mayor problema ya no es como saber si existe 
el campo o la tabla porque, aunque no se si es la forma correcta, con hacer una 
consulta con control de errores puedo saberlo.

El tema es que por ejemplo para agregar un campo a una tabla genero la 
secuencia de comandos en SQL Server 2005 y me arroja varias lineas de codigo 
TSQL como el que está más abajo. El tema es que no se como ejecutar ese código 
TSQL desde VB.NET

codigo:

BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
GO
CREATE TABLE dbo.Tmp_Matriz
 (
 Id int NOT NULL IDENTITY (1, 1),
 IdCuenta varchar(36) NOT NULL,
 IdUsuario varchar(36) NOT NULL,
 Cuenta varchar(100) NOT NULL,
 Division varchar(50) NULL,
 SubDivision varchar(50) NULL,
 Demostracion int NULL,
 Venta int NULL,
 Mantenimiento int NULL,
 Venta3M float(53) NULL,
 VentaCompetencia float(53) NULL,
 Potencial float(53) NULL,
 Share float(53) NULL,
 Penetracion float(53) NULL,
 GAP float(53) NULL,
 Mercado varchar(30) NULL,
 Dato1 varchar(100) NULL,
 Dato2 varchar(100) NULL
 )  ON [PRIMARY]
GO
SET IDENTITY_INSERT dbo.Tmp_Matriz ON
GO
IF EXISTS(SELECT * FROM dbo.Matriz)
  EXEC('INSERT INTO dbo.Tmp_Matriz (Id, IdCuenta, Cuenta, Division, 
SubDivision, Demostracion, Venta, Mantenimiento, Venta3M, VentaCompetencia, 
Potencial, Share, Penetracion, GAP, Mercado, Dato1, Dato2)
  SELECT Id, IdCuenta, Cuenta, Division, SubDivision, Demostracion, Venta, 
Mantenimiento, Venta3M, VentaCompetencia, Potencial, Share, Penetracion, GAP, 
Mercado, Dato1, Dato2 FROM dbo.Matriz WITH (HOLDLOCK TABLOCKX)')
GO
SET IDENTITY_INSERT dbo.Tmp_Matriz OFF
GO
DROP TABLE dbo.Matriz
GO
EXECUTE sp_rename N'dbo.Tmp_Matriz', N'Matriz', 'OBJECT' 
GO
COMMIT


Gracias por responder!

Eliseo
  ----- Original Message ----- 
  From: Carlos Marcelo Santos 
  To: [email protected] 
  Sent: Thursday, February 07, 2008 10:18 AM
  Subject: [puntonet] Modificar tabla SQl desde VB.NET


  Hola:

  En el mismo sentido que te recomendó Eugenio podés usar esto:

   

  SELECT C.*

  FROM syscolumns C

  LEFT JOIN sysobjects O ON C.id = C.id

  WHERE O.name = 'tuTabla' AND C.name = 'tuCampo'

   

  Pero cuidado, esto anda bien siempre y cuando tu nombre de campo no sea una 
palabra reservada, por ejemplo si ejecutás esto con nombre de campo 'Name' te 
trae unos cuantos registros aunque no sea campo de la tabla. Necesitás agregar 
un WHERE jugando con el campo xtype de syscolumns y con algún otro más.

  Si hacés la consulta en la lista de DBMS te van a poder ampliar.

   

  Carlos Marcelo Santos.

   

   

   

  From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Eliseo Alegre
  Sent: Miércoles, 06 de Febrero de 2008 03:40 p.m.
  To: [email protected]
  Subject: [puntonet] Modificar tabla SQl desde VB.NET

   

  Gracias por tu ayuda, algo así se me había ocurrido. La duda que tengo es 
comoejecuto el codigo TSQL desde la aplicación.

   

  Eliseo

    ----- Original Message ----- 

    From: [EMAIL PROTECTED] 

    To: [email protected] 

    Sent: Tuesday, February 05, 2008 3:49 PM

    Subject: [puntonet] Modificar tabla SQl desde VB.NET

     

    Primero apunta al SysObject

    sino una vez tuve que hacer algo asi y lo que se me ocurrio entonces era 
muuy trucho pero anduvo

     

     

    Disparas una consulta a la BD controlando errores. El TOP 0 es para que no 
devuelva registros y sea lo mas rapido posible

     

    "Select TOP 0 * From <TABLA>"

     

    Si Da OK, la tabla existe, sino no

     

    "Select TOP 0 <CAMPO> From <TABLA>"

     

    Ahi no recuerdo como te da el error, pero algo similar a lo anterior

     

    No creo que sea lo mejor, debe haber almo muchisimo mejor, pero alomejor 
sirve

     

    Ing. Diego M. Basélica

    e-mail: [EMAIL PROTECTED]

     

    UpSoft Sistemas Informáticos

    Rafael Nuñez 3498 (X5009CFO) Córdoba, Argentina

    Tel/Fax: 0351-4814812 (rot.)

    www.upsoft.com.ar 

     

     

     


----------------------------------------------------------------------------

    De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Eugenio 
Alonso
    Enviado el: Martes, 05 de Febrero de 2008 14:11
    Para: [email protected]
    Asunto: [puntonet] Modificar tabla SQl desde VB.NET

    Si es SQL Server

    Podes consultar la tabla sysobjects y syscolumns

     

    Saludos, Eugenio

     


----------------------------------------------------------------------------

    De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Eliseo Alegre
    Enviado el: Martes, 05 de Febrero de 2008 11:26 a.m.
    Para: [email protected]
    Asunto: [puntonet] Modificar tabla SQl desde VB.NET

     

    Alguien tiene algún ejemplo para saber si existe un campo en una tabla y si 
no existe crearlo desde una aplicación vb.net. También necesito hacer lo mismo 
con toda una tabla.

     

    Gracias

     

    Eliseo

   

  No virus found in this incoming message.
  Checked by AVG Free Edition.
  Version: 7.5.516 / Virus Database: 269.19.20/1262 - Release Date: 06/02/2008 
09:13 a.m.



  No virus found in this outgoing message.
  Checked by AVG Free Edition.
  Version: 7.5.516 / Virus Database: 269.19.21/1263 - Release Date: 06/02/2008 
08:14 p.m.

Responder a