Usuário com melhor resposta
Tabela Temporaria

Pergunta
-
Galera estou criando uma tabela temporaria da seguinte maneira:
drop
table #testeCREATE
TABLE #teste(
SecurityIDType
char(1),ContryIncorp
char(2),CountryList
char(2),FidPosition
char(1))
DECLARE
@SecurityIDType
as char(1),@ContryIncorp
as char(2),@CountryList
as char(2),@FidPosition
as char(1),@dtOperation
as varchar(8),@stockCode
as varchar(10)SET
@SecurityIDType = 'I';SET
@ContryIncorp = 'BR';SET
@CountryList = 'BR';SET
@FidPosition = 'N';SET
@dtOperation = '20081202';-- Ativos na carteira
SELECT
stock
.Stockid,Stock
.Available,stock
.AccountId AS Carrying,enti
.Name,@SecurityIDType
AS SecurityIDType,@ContryIncorp
AS ContryIncorp,@CountryList
AS CountryList,@FidPosition
AS FidPositionFROM
Account AS accLEFT
JOIN Entity AS enti ONacc
.EntityId = enti.idLEFT
JOIN StockShare AS stock ONstock
.AccountId = acc.idLEFT
JOIN company AS comp ONcomp
.id = stock.StockidWHERE
stock.date = @dtOperationgroup
by stock.Stockid,stock
.Available,stock
.AccountId,enti
.NameINSERT
INTO #TESTE VALUES(@SecurityIDType,@ContryIncorp, @CountryList, @FidPosition )select
* from #TESTE;Como eu faço para incluir meu campos de retorno do meu select na minha tabela temporaria?
Obrigado
Respostas
-
Olá SirSmart,
Coloque-as na criação da tabela temporária.
CREATE TABLE #teste
(
StockID Tipo,
Available Tipo,
Carryin Tipo,
Name Tipo,
SecurityIDType char(1),
ContryIncorp char(2),
CountryList char(2),
FidPosition char(1)
)
Depois é só executar o INSERT exatamente da mesma forma que você já está fazendo contemplando todas as colunas na declaração de campos e no SELECT.
[ ]s,
Gustavo
Todas as Respostas
-
-
-
Então gente eu queria pegar os valores do seu select :
stock.Stockid,
Stock.Available,
stock
.AccountId AS Carrying,enti
.Name,E gravar na tabela temporaria tb.
Hj só estou gravando as informações das variaveis que declarei, porem preciso pegar o retorno do select e inserir tb..
Tem como fazer isso?
Obrigado
-
SirSmart,
Veja este exemplo:
Code SnippetCreate
Table #Teste (Codigo Int Identity(1,1), Descricao Varchar(100) default 'teste')Insert
Into #Teste Default ValuesInsert
Into #Teste Default ValuesInsert
Into #Teste Default ValuesCreate
Table #Teste1 (Codigo Int Identity(1,1), Descricao Varchar(100) default 'teste')Insert
Into #Teste1 Select Descricao from #TesteSelect
* from #Teste1 -
Olá SirSmart,
Coloque-as na criação da tabela temporária.
CREATE TABLE #teste
(
StockID Tipo,
Available Tipo,
Carryin Tipo,
Name Tipo,
SecurityIDType char(1),
ContryIncorp char(2),
CountryList char(2),
FidPosition char(1)
)
Depois é só executar o INSERT exatamente da mesma forma que você já está fazendo contemplando todas as colunas na declaração de campos e no SELECT.
[ ]s,
Gustavo
-
Experimente fazer o seguinte:
IF EXISTS(SELECT * FROM sysobjects WHERE name='nomedoprocedimento' AND type='P')
BEGIN
drop proc procedimento
END
GO
CREATE PROC nomedoprocedimento(
@SecurityIDType <tipo>,as
@ContryIncorp <TIPO>,
@CountryList <TIPO>,
@FidPosition <TIPO>)
SET NOCOUNT ON
SELECT @securityIdtype as campo, @contryincorp as campo2, @countrylist as campo3, @fidposition as campo4,
stock.Stockid,
Stock.Available,
stock.AccountId AS Carrying,
enti.Name
INTO #TEMP
FROM Account AS acc
LEFT JOIN Entity AS enti ON
acc.EntityId = enti.id
LEFT JOIN StockShare AS stock ON
stock.AccountId = acc.id
LEFT JOIN company AS comp ON
comp.id = stock.Stockid
WHERE stock.date = @dtOperation
group by stock.Stockid,
stock.Available,
stock.AccountId,
enti.Name
SET NOCOUNT OFFSELECT * FROM #TEMP
DROP TABLE #TEMP
RETURN(0)
GO -
-
Olá SirSmart,
Após criar a tabela temporária tente o seguinte:
INSERT INTO #Teste (Todas as colunas)
SELECT
stock.Stockid,
Stock.Available,
stock
.AccountId AS Carrying,enti
.Name,@SecurityIDType
AS SecurityIDType,@ContryIncorp
AS ContryIncorp,@CountryList
AS CountryList,@FidPosition
AS FidPositionFROM
Account AS accLEFT
JOIN Entity AS enti ONacc
.EntityId = enti.idLEFT
JOIN StockShare AS stock ONstock
.AccountId = acc.idLEFT
JOIN company AS comp ONcomp
.id = stock.StockidWHERE
stock.date = @dtOperationgroup
by stock.Stockid,stock
.Available,stock
.AccountId,enti
.NameA dica do SELECT INTO que foi postada também é uma boa solução.
[ ]s,
Gustavo