Autor Tema: SQL Server No se permite conversión implícita del tipo datos sql_variant a int  (Leído 8747 veces)

Eva

  • Sin experiencia
  • *
  • Mensajes: 23
    • Ver Perfil
Tengo el siguiente fragmento de consulta dentro de un Procedimiento:


BEGIN
INSERT INTO FORMATOINICIAL(NOMBRETABLA,OBJECTID,NOMBRECOL,FECALTER,IDSEED,TIPOIDENTITY,VALORDEFAULT)

SELECT ISC.TABLE_NAME,
          ST.object_id,
          ISC.COLUMN_NAME,
          ST.modify_date,
           ISC.IS_NULLABLE,
         sic.seed_value,
           sic.is_identity,
           ISC.COLUMN_DEFAULT
           FROM INFORMATION_SCHEMA.COLUMNS AS ISC
           INNER JOIN sys.tables AS ST ON ISC.TABLE_NAME=ST.name
         left join sys.identity_columns sic on ST.object_id = sic.object_id
            WHERE ISC.TABLE_SCHEMA = @esquema AND ISC.TABLE_NAME=@nombretabla
END

Pero me genera un error:
"No se permite la conversión implícita del tipo de datos sql_variant a int. Utilice la función CONVERT para ejecutar esta consulta."cuando lo ejecuto.. ¿Alguien sabe donde deberia incluir el CONVERT? Probe de varias formas y no logro solucionarlo
« Última modificación: 29 de Septiembre 2014, 14:17 por Alex Rodríguez »

Mastermind

  • Experto
  • *****
  • Mensajes: 536
    • Ver Perfil
Re:Auditar tablas en SQL Server
« Respuesta #1 en: 10 de Julio 2013, 14:58 »
Habría que mirar:

¿Qué formato tienen estos campos de FORMATOINICIAL:
NOMBRETABLA
OBJECTID
NOMBRECOL
FECALTER
IDSEED
TIPOIDENTITY
VALORDEFAULT
?

¿Qué formato tienen estos de las otras dos tablas:
ISC.TABLE_NAME
ST.object_id
ISC.COLUMN_NAME
ST.modify_date
ISC.IS_NULLABLE
sic.seed_value
sic.is_identity
ISC.COLUMN_DEFAULT
?

¿Si ejecutas esta consulta:

Código: [Seleccionar]
SELECT ISC.TABLE_NAME,
          ST.object_id,
          ISC.COLUMN_NAME,
          ST.modify_date,
           ISC.IS_NULLABLE,
         sic.seed_value,
           sic.is_identity,
           ISC.COLUMN_DEFAULT
           FROM INFORMATION_SCHEMA.COLUMNS AS ISC
           INNER JOIN sys.tables AS ST ON ISC.TABLE_NAME=ST.name
         left join sys.identity_columns sic on ST.object_id = sic.object_id
            WHERE ISC.TABLE_SCHEMA = @esquema AND ISC.TABLE_NAME=@nombretabla

obtienes el resultado esperado?

Otra opción sería pensar en una copia de tablas y modificación del tipo de datos, pero esto solo lo pensaría si estuvieras hablando de pocos datos (cien ó mil) si estás con miles de datos no lo veo razonable.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".