INSERIR NOVOS CAMPOS UMA CONSULTA SQL
Boa Noite pessoal,
Tenho uma consulta no SQL server dentro do VB.Net da seguinte maneira:
SqlNovaTabela = [Ô]Select TabelaAtual.Campo1, TabelaAtual.Campo2, 0.00 as Campo3, [ô][ô] as Campo4 Into NovaTabela From TabelaAtual[Ô]
Como faço na Tabela [Ô]NovaTabela[Ô] fique com o campo3= Numeric(10,2) e o Campo4 = varchar(30)
Sei que posso fazer um [Ô]Alter Table[Ô] na Novatabela Criada, mas como faço direto na consulta?
Grato
Tenho uma consulta no SQL server dentro do VB.Net da seguinte maneira:
SqlNovaTabela = [Ô]Select TabelaAtual.Campo1, TabelaAtual.Campo2, 0.00 as Campo3, [ô][ô] as Campo4 Into NovaTabela From TabelaAtual[Ô]
Como faço na Tabela [Ô]NovaTabela[Ô] fique com o campo3= Numeric(10,2) e o Campo4 = varchar(30)
Sei que posso fazer um [Ô]Alter Table[Ô] na Novatabela Criada, mas como faço direto na consulta?
Grato
O ignorante também tem boas idéias, só que não chega perceber
Autor desconhecido
Não entendi sua pergunta, você quer formatar os valores na consulta?
JCM0867,
Veja se é isto ... pesquisei:
===============================================================
SQL Server 2012
http://technet.microsoft.com/pt-br/library/hh213505.aspx
SELECT FORMAT( GETDATE(), [ô]dd/MM/yyyy[ô], [ô]en-US[ô] ) AS [ô]DateTime Result[ô]
,FORMAT(123456789,[ô]###-##-####[ô]) AS [ô]Custom Number Result[ô];
===============================================================
http://www.sqlusa.com/bestpractices/pad/
===============================================================
Cheguei a conclusão:
===============================================================
Select Orders.OrderID,
0.00 as Campo3,
REPLICATE([ô]0[ô],11-LEN([ô]0.00[ô])) + [ô].[ô] + right([ô]0.00[ô],2) as Campo3,
REPLICATE([ô] [ô],30-LEN(OrderID)) as Campo4,
CAST(OrderID AS char(30)) as Campo5,
CAST([ô][ô] AS char(30)) as Campo6
From Orders
SELECT Orders.OrderID,
Padded=RIGHT([ô]0000000000[ô] + CONVERT(VARCHAR,OrderID), 10)
FROM Orders
===============================================================
SqlNovaTabela = [Ô]Select TabelaAtual.Campo1, TabelaAtual.Campo2, REPLICATE([ô]0[ô],11-LEN([ô]0.00[ô])) + [ô].[ô] + right([ô]0.00[ô],2) as Campo3, CAST([ô][ô] AS char(30)) as Campo4
Into NovaTabela From TabelaAtual[Ô]
===============================================================
Ajudou?
[][ô]s,
Tunusat.
Veja se é isto ... pesquisei:
===============================================================
SQL Server 2012
http://technet.microsoft.com/pt-br/library/hh213505.aspx
SELECT FORMAT( GETDATE(), [ô]dd/MM/yyyy[ô], [ô]en-US[ô] ) AS [ô]DateTime Result[ô]
,FORMAT(123456789,[ô]###-##-####[ô]) AS [ô]Custom Number Result[ô];
===============================================================
http://www.sqlusa.com/bestpractices/pad/
===============================================================
Cheguei a conclusão:
===============================================================
Select Orders.OrderID,
0.00 as Campo3,
REPLICATE([ô]0[ô],11-LEN([ô]0.00[ô])) + [ô].[ô] + right([ô]0.00[ô],2) as Campo3,
REPLICATE([ô] [ô],30-LEN(OrderID)) as Campo4,
CAST(OrderID AS char(30)) as Campo5,
CAST([ô][ô] AS char(30)) as Campo6
From Orders
SELECT Orders.OrderID,
Padded=RIGHT([ô]0000000000[ô] + CONVERT(VARCHAR,OrderID), 10)
FROM Orders
===============================================================
SqlNovaTabela = [Ô]Select TabelaAtual.Campo1, TabelaAtual.Campo2, REPLICATE([ô]0[ô],11-LEN([ô]0.00[ô])) + [ô].[ô] + right([ô]0.00[ô],2) as Campo3, CAST([ô][ô] AS char(30)) as Campo4
Into NovaTabela From TabelaAtual[Ô]
===============================================================
Ajudou?
[][ô]s,
Tunusat.
Não deu certo
Joguei no SQL server e ele gerou o campo3 como varchar(10) e o campo4 como char(30)
Fiz o seguinte e deu certo:
SqlNovaTabela = [Ô]Select TabelaAtual.Campo1, TabelaAtual.Campo2, CAST(0 AS Numeric(10,2)) as Campo3, CAST([ô][ô] AS varchar(30)) as Campo4
Into NovaTabela From TabelaAtual[Ô]
Joguei no SQL server e ele gerou o campo3 como varchar(10) e o campo4 como char(30)
Fiz o seguinte e deu certo:
SqlNovaTabela = [Ô]Select TabelaAtual.Campo1, TabelaAtual.Campo2, CAST(0 AS Numeric(10,2)) as Campo3, CAST([ô][ô] AS varchar(30)) as Campo4
Into NovaTabela From TabelaAtual[Ô]
“A imaginação é mais importante que o conhecimento. O conhecimento é limitado. A imaginação envolve o mundo.â€
Albert Einsten
deixa eu entender, você quer transferir os registros de uma tabela a outra, mais em uma tabela não existe as colunas que você quer passar?
Insert into novaTabela(campo1,campo2,campo3,campo4)
select tabelaAtual.campo1, tabelaAtual.campo2, cast(0 as numeric(10,2)) as campo3, cast([ô][ô] as varchar(30)) as campo4
No criar a tabela você pode definir valores fixos a ela, quando nulo. Neste caso você não precisaria fazer assim, basta informar os campos necessários no Insert.
Insert into novaTabela(campo1,campo2)
select tabelaAtual.campo1, tabelaAtual.campo2
Já que você está passando valores em branco, não vejo a necessidade de informar uma coluna formatada a zero e uma coluna com valor em branco.
Insert into novaTabela(campo1,campo2,campo3,campo4)
select tabelaAtual.campo1, tabelaAtual.campo2, cast(0 as numeric(10,2)) as campo3, cast([ô][ô] as varchar(30)) as campo4
No criar a tabela você pode definir valores fixos a ela, quando nulo. Neste caso você não precisaria fazer assim, basta informar os campos necessários no Insert.
Insert into novaTabela(campo1,campo2)
select tabelaAtual.campo1, tabelaAtual.campo2
Já que você está passando valores em branco, não vejo a necessidade de informar uma coluna formatada a zero e uma coluna com valor em branco.
se eu fizer 0.00 as Campo3 ele fica Numeric(2,2), mas o cast resolveu o problema
Grato
Grato
Tópico encerrado , respostas não são mais permitidas