1
resposta

Inserir valores dinâmicos no Type Table

Como eu faria para inserir vários valores dinâmicos no Type Table?

Queria fazer algo assim:

create type CPFS AS TABLE
(cpf varchar(11) not null)

declare @cpfs VARCHAR(500)
set @cpfs = ('19290992743, 2600586709')
declare @cpfsType CPFS
declare @query VARCHAR(1000)
select @query = 'INSERT INTO ' + @cpfsType + ' ([cpf]) values '
select @query = '(' + @cpfs + ')'
exec (@query)
1 resposta

Oi, Weslley! Tudo bem?

Primeiro é necessário que você crie a tabela de CPFs para depois inserir os valores dinâmicos. Deste modo:

CREATE TYPE CPFS AS TABLE
(CPF VARCHAR(11) NOT NULL)

DECLARE @cpfs CPFS
INSERT INTO @cpfs (CPF)
VALUES ('19290992743'), ('2600586709')

E notei que ao final do código você está inserindo uma consulta dinâmica com @query. Contudo, há alguns errinhos de sintaxe. O correto seria:

DECLARE @query VARCHAR(1000)
SELECT @query = 'INSERT INTO CPFS ([cpf]) SELECT cpf FROM ' + @cpfs
EXEC (@query)

Ou seja: na consulta dinâmica, vamos inserir na tabela CPFS e na coluna cpf os valores de tipo @cpf, que criamos antes, ali em cima.

E a partir desses dois blocos de código você conseguirá inserir certinho os valores. =)

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.