Ok, lo voy a probar. Muchas gracias
  ----- Original Message ----- 
  From: Eugenio Alonso 
  To: [email protected] 
  Sent: Thursday, February 07, 2008 12:01 PM
  Subject: [puntonet] Modificar tabla SQl desde VB.NET


  En el script lo que esta haciendo, es crear una tabla nueva con el nuevo 
formato, cargarle los datos y después renombrarla.

   

   

  Para agregar un campo, podes ejecutar directamente:

   

  ALTER TABLE Matriz ADD NuevoCampo char(10) NULL

   

  Saludos, Eugenio

   

   


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

  De: [email protected] [mailto:[EMAIL PROTECTED] En nombre de Eliseo Alegre
  Enviado el: Jueves, 07 de Febrero de 2008 12:55 p.m.
  Para: [email protected]
  Asunto: [puntonet] Modificar tabla SQl desde VB.NET

   

  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