ALTER COLUMN

13/10/2003 - 12:52 por McPegasus | Informe spam
Hola ñuseros de SQL,

resulta que necesito modificar el tamaño de un campo a través de código,
tras preguntar y documentarme encuentro que se puede hacer de este modo,

ALTER TABLE TableName ALTER COLUMN FieldName1 TEXT(7)

pues bien,"" no hay manera que me funcione el ALTER COLUMN"", se produce un
error de sintaxis en Alter.

Según http://support.microsoft.com/defaul...;ES;275561 debería de
ser, según la ayuda del Access 2003 también,

a.. Utilizar ALTER COLUMN para cambiar el tipo de datos de un campo
existente. Se especifica el nombre del campo, el nuevo tipo de datos, y un
tamaño opcional en los campos de texto y los campos binarios. Por ejemplo,
la siguiente instrucción modifica el tipo de datos de un campo de la tabla
Empleados, denominado CódigoPostal (definido originalmente como Entero), a
un campo de texto de 10 caracteres:
ALTER TABLE Empleados ALTER COLUMN CódigoPostal TEXT(10)


Create Table funciona, Add Column también,

¿por qué no funciona lo que en todos los sitios indica que debería?

Muchas gracias.





Filosofía compartida: "regalamos conocimientos, no tiempo."...

y para no perderlo donde no queramos,
http://www.microsoft.com/spain/tech...9-USER.asp




Un Saludo,

Rafael Andrada C.
McPegasus
Valencia (es)

[MS MVP - Access]
mcpegasus@mcpegasus.com
www.mcpegasus.com

Preguntas similare

Leer las respuestas

#11 Miguel Egea
13/10/2003 - 15:56 | Informe spam
Antes existía una cosa llamada ADOX, que servía para controlar estructuras,
seguramente pudieses hacerlo a través de eso, pero no es demasiado
recomendable, no lo es debido a que microsoft ha descontinuado el invento,
así que... como bien dices al comienzo del mensaje .

Saludos
Miguel Egea
"McPegasus" escribió en el mensaje
news:
:((( no funciona en Access 97, porra Miguel, échale un vistazo a la


pregunta
que he colgado en el hilo de Manuel.

;))





Filosofía compartida: "regalamos conocimientos, no tiempo."...

y para no perderlo donde no queramos,



http://www.microsoft.com/spain/tech...9-USER.asp




Un Saludo,

Rafael Andrada C.
McPegasus
Valencia (es)

[MS MVP - Access]

www.mcpegasus.com

"Miguel Egea" escribió en el mensaje
news:%23u53$
> Lo he probado con access 2000 sr1 con tu instrucción y va ok.
>
> Saludos
> Miguel Egea
> "Miguel Egea" escribió en el mensaje
> news:
> > Lo siento lo probé en Sql-server, no en access, leí despues tu
aclaración,
> > lo siento.
> >
> > Lo probaré en access y te cuento.
> >
> > Saludos
> > Miguel Egea
> > "McPegasus" escribió en el mensaje
> > news:
> > > Hacias Miguel :)))), aunque me hubiera gustado entrar a saludar
> jejeejeje,
> > > estoy media mañana con este bicho :(((.
> > >
> > > Estoy haciendo pruebas para intentar que me funcione de alguna


manera,
> así
> > > que ahora los datos de origen son,
> > >
> > > Nombre de la tabla: tblPresupuestos
> > >
> > > Nombre del campo: IdTransitorio
> > >
> > > Tipo de datos: Texto, tamaño: 50
> > >
> > >
> > > Deseo (no tirarme a un pozo desde luego, ejej) convertir


IdTransitrio
a
> un
> > > Entero, por lo que debería de ser,
> > >
> > >
> > > CurrentDb.Execute "ALTER TABLE IdTransitorio ALTER COLUMN
> > > IDTransitorio int"
> > >
> > > :(((( poz nopi
> > >
> > >
> > > "Error de sintaxis en la instrucción ALTER TABLE."
> > >
> > >
> > > ¿¿Lo has probado en Access, en qué versión??
> > >
> > >
> > >
> > >
> > >
> > > Filosofía compartida: "regalamos conocimientos, no tiempo."...
> > >
> > > y para no perderlo donde no queramos,
> > >
> >
>



http://www.microsoft.com/spain/tech...9-USER.asp
> > >
> > >
> > >
> > >
> > > Un Saludo,
> > >
> > > Rafael Andrada C.
> > > McPegasus
> > > Valencia (es)
> > >
> > > [MS MVP - Access]
> > >
> > > www.mcpegasus.com
> > >
> > > "Miguel Egea" escribió en el
mensaje
> > > news:O%
> > > > Hombre, un placer verte por aquí.
> > > >
> > > > Quizá tu problema esté en el tipo de datos, el equivalente al
text(10)
> > de
> > > > access es varchar,
> > > > Prueba esto
> > > >
> > > > use pubs
> > > > go
> > > > select * into a from jobs
> > > > alter table a alter column max_lvl varchar(50)
> > > > select * From a
> > > > alter table a alter column max_lvl int
> > > > select * from a
> > > > drop table a
> > > >
> > > > Saludos
> > > > Miguel Egea
> > > >
> > > > "McPegasus" escribió en el


mensaje
> > > > news:#
> > > > > Hola ñuseros de SQL,
> > > > >
> > > > > resulta que necesito modificar el tamaño de un campo a través de
> > código,
> > > > > tras preguntar y documentarme encuentro que se puede hacer de


este
> > modo,
> > > > >
> > > > > ALTER TABLE TableName ALTER COLUMN FieldName1 TEXT(7)
> > > > >
> > > > > pues bien,"" no hay manera que me funcione el ALTER COLUMN"", se
> > produce
> > > > un
> > > > > error de sintaxis en Alter.
> > > > >
> > > > > Según


http://support.microsoft.com/defaul...;ES;275561
> > > debería
> > > > de
> > > > > ser, según la ayuda del Access 2003 también,
> > > > >
> > > > > a.. Utilizar ALTER COLUMN para cambiar el tipo de datos de un
campo
> > > > > existente. Se especifica el nombre del campo, el nuevo tipo de
> datos,
> > y
> > > un
> > > > > tamaño opcional en los campos de texto y los campos binarios.


Por
> > > ejemplo,
> > > > > la siguiente instrucción modifica el tipo de datos de un campo


de
la
> > > tabla
> > > > > Empleados, denominado CódigoPostal (definido originalmente como
> > Entero),
> > > a
> > > > > un campo de texto de 10 caracteres:
> > > > > ALTER TABLE Empleados ALTER COLUMN CódigoPostal TEXT(10)
> > > > >
> > > > >
> > > > > Create Table funciona, Add Column también,
> > > > >
> > > > > ¿por qué no funciona lo que en todos los sitios indica que
debería?
> > > > >
> > > > > Muchas gracias.
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Filosofía compartida: "regalamos conocimientos, no tiempo."...
> > > > >
> > > > > y para no perderlo donde no queramos,
> > > > >
> > > >
> > >
> >
>



http://www.microsoft.com/spain/tech...9-USER.asp
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Un Saludo,
> > > > >
> > > > > Rafael Andrada C.
> > > > > McPegasus
> > > > > Valencia (es)
> > > > >
> > > > > [MS MVP - Access]
> > > > >
> > > > > www.mcpegasus.com
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#12 Jesús López
15/10/2003 - 09:38 | Informe spam
Hola Rafa,

Eso no funciona con DAO, tienes que hacerlo con ADO y funciona con bases de
datos de Access 97, he hecho la prueba :-)

Añades una referencia a "Microsoft ActiveX Data Object x.x Library" y
escribes un código como este:

Dim con As New ADODB.Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Pruebas\Prueba.mdb"
con.Open
Dim cmd As New ADODB.Command
Set cmd.ActiveConnection = con
cmd.CommantText = "ALTER TABLE Tabla1 ALTER COLUMN Id LONG"
cmd.Execute adExecuteNoRecords
con.Close

Saludos:

Jesús López
MVP .NET
Respuesta Responder a este mensaje
#13 McPegasus
15/10/2003 - 13:04 | Informe spam
:))) muchas gracias joven, sabía que podía confiar en ti :)))), nos vemos en
Madrid el 7 ;))




Filosofía compartida: "regalamos conocimientos, no tiempo."...

y para no perderlo donde no queramos,
http://www.microsoft.com/spain/tech...9-USER.asp




Un Saludo,

Rafael Andrada C.
McPegasus
Valencia (es)

[MS MVP - Access]

www.mcpegasus.com

"Jesús López" escribió en el mensaje
news:%
Hola Rafa,

Eso no funciona con DAO, tienes que hacerlo con ADO y funciona con bases


de
datos de Access 97, he hecho la prueba :-)

Añades una referencia a "Microsoft ActiveX Data Object x.x Library" y
escribes un código como este:

Dim con As New ADODB.Connection
con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\Pruebas\Prueba.mdb"
con.Open
Dim cmd As New ADODB.Command
Set cmd.ActiveConnection = con
cmd.CommantText = "ALTER TABLE Tabla1 ALTER COLUMN Id LONG"
cmd.Execute adExecuteNoRecords
con.Close

Saludos:

Jesús López
MVP .NET


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida