Como definir o tipo (int) para um novo campo na instrução SQL SELECT INTO no MS Access

StackOverflow https://stackoverflow.com//questions/20043231

  •  22-12-2019
  •  | 
  •  

Pergunta

Quero definir o novo campo em uma instrução select into como número inteiro.No entanto, o NewField acaba sendo binário.Como posso fazer isso?

SELECT ExistingField1, ExistingField2, NewField
INTO NewTable
FROM ExistingTable

Pesquisei muito mas ainda não encontrei uma solução.

Editar 1:Estou executando a instrução SELECT INTO no próprio aplicativo Microsoft Access.(não é uma tabela no Access que aponta para uma tabela do SQL Server)

Editar 2:NewField é criado com a instrução SELECT INTO.Não existe em uma tabela pré-existente.

Foi útil?

Solução

A razão pela qual termina como binário é porque o campo na tabela existente provavelmente é um campo binário.

Você poderia tentar fazer algo assim:

SELECT ExistingField1, ExistingField2, CAST(NewField AS int)
INTO NewTable
FROM ExistingTable

CAST não funciona no MsAccess.No entanto, isso deve funcionar:

SELECT ExistingField1, ExistingField2, cInt(Field1 + Field2) AS NewField
INTO NewTable
FROM ExistingTable

Outras dicas

Para o Access, eu usaria isso, então a caixa de diálogo do parâmetro não é exibida.

SELECT ExistingField1, cInt(0) AS NewField
into NewTable1
FROM Table1

Para SQL Server

CAST(null AS int) AS NewField

Se você já possui a estrutura do NewTable definida, você pode tentar:

Insert Into NewTable 
Select 
      ExistingField1,
      ExistingField2,
      cast(NewField as int) as NewField,
From ExistingTable
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top