Como definir o tipo (int) para um novo campo na instrução SQL SELECT INTO no MS Access
-
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.
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