Estoy teniendo problemas para cambiar el nombre de una columna en SQL Server Compact Edition. Yo sé que tú puedes cambiar el nombre de una tabla mediante sp_rename, pero esto no funciona con las columnas.

He buscado una alternativa, pero no he encontrado uno.

Puedo eliminar una columna y, a continuación, añadir una nueva, después de una columna específica? Si puedo eliminar la columna y agregar después de la especificada uno de los datos se perderían derecho?

Parece que una vez creada la tabla no puede ser adecuadamente modificados – se trata de otra de las limitaciones de SQLCE?

OriginalEl autor lucian | 2010-10-19

3 Comentarios

  1. 14

    En efecto, parece que SQL CE no permitir el cambio de los nombres de columna.

    Usted está en el camino correcto con la creación de una nueva columna y eliminar el antiguo.

    Si usted acaba de agregar una columna y eliminar el antiguo perderá los datos por lo que necesita para emitir una instrucción update para cambiar los datos de la vieja a la nueva.

    Algo a lo largo de las líneas de

    alter Table [dbo].[yourTable] add [newColumn]
    
    update yourTable set newColumn = oldColumn
    
    alter Table [dbo].[yourTable] drop column [oldColumn]

    Debe crear su nueva columna, duplicar los datos de la vieja a la nueva y, a continuación, retire la columna anterior.

    Espero que ayude!

    Es posible que esto podría funcionar, pero la nueva columna será la última columna de la tabla y yo no quiero eso. Hay después de así que usted puede agregar después de una columna especificada pero no funciona en la CE. No puede encontrar la palabra después. Esta es mi consulta: «ALTER TABLE Inversores AGREGAR COLUMNA NewC int después de que el Producto», este es el error: «se produjo un error de análisis de la consulta. [ Token número de línea = 2,Token línea offset = 21,símbolo de error = después ]».
    Alter Table en CE parece ser que falta que la funcionalidad de buscar aquí msdn.microsoft.com/en-us/library/ms174123.aspx que Carecen de este no estoy seguro de cómo se puede preservar su orden actual corto de volver a crear la tabla. Personalmente yo no estaría demasiado preocupado acerca de que, como columna de pedido sería especificado por mi instrucción select de todos modos.
    Solución perfecta (a menos que la columna es parte de un índice). Recuerde que el tipo de datos en el primer comando, o el script falla / fail / éxito…
    puede ser utilizado en MS-Access también! muy útil! thx

    OriginalEl autor Robb

  2. 2

    sp_rename trabaja con columnas:

    EXEC sp_rename
    objname = '< Table Name.Old Column Name >',
    @newname = '<New Column Name>',
    @objtype = 'COLUMN'  

    Ejemplo:

    SP_RENAME 'MyTable.[MyOldColumnName]' , '[MyNewColumnName]', 'COLUMN'  

    ACTUALIZACIÓN: de Hecho, El sp_rename procedimiento no está disponible en SQL CE! Usted puede encontrar la solución en http://www.bigresource.com/Tracker/Track-ms_sql-4Tvoiom3/

    ¿Estás seguro de que funciona con Compact Edition así? Yo lo he probado antes de la publicación de esta pregunta y he probado con el ejemplo y no funciona. Aquí es lo que tengo: El argumento especificado valor para el procedimiento no es válido. [ Argumento # = 3,Nombre del procedimiento(si se conoce) = sp_rename ]
    Estás en lo correcto. lo siento. parece sp_rename no está disponible en SQLCE. la actualización de mi respuesta…
    Todavía podía usar EXEC sp_rename ‘demo’, ‘mascotas’ con éxito en MS Compact Edition 2008 para cambiar el nombre de la tabla. Pero sí se ha podido para cambiar el nombre de las columnas.
    el enlace agregó que ahora está muerto.

    OriginalEl autor Kamyar

  3. 0

    SDF Espectador tiene esta función, construido en, también puede cambiar el nombre de los índices, claves y relaciones. Sólo derecho haga clic en el nombre que desea cambiar en la base de datos treeview.

    Me sería de ayuda, si usted puede proporcionar un enlace a la SDF Visor de documentación.

    OriginalEl autor howard

Dejar respuesta

Please enter your comment!
Please enter your name here