Inicial
> SQL Server > Insert SQL 2008 – SubQueries
Insert SQL 2008 – SubQueries
No nosso ambiente de desenvolvimento estamos utilizando o SQL Server 2008.
Peguei um script que estava dando erro em nosso cliente, fui testar, aqui funciona, lá não funciona.
Resumo, no SQL Server 2008 são permitidos inserts utilizando subqueries, coisa que não era permitida no SQL Server 2005.
Por ex:
A consulta abaixo não funciona no SQL Server 2005
DECLARE @Tab TABLE(ID Int)
INSERT INTO @Tab(ID) VALUES((SELECT 1))
Msg 1046, Level 15, State 1, Line 3
Subqueries are not allowed in this context. Only scalar expressions are allowed.
Já no SQL Server 2008:
DECLARE @Tab TABLE(ID Int)
INSERT INTO @Tab(ID) VALUES((SELECT 1))
(1 row(s) affected)
Portanto fique alerta, para as construções dos seus inserts…
Categorias:SQL Server
Oi Fabiano,
Legal. Não conhecia essa
Oi Fabiano.Cara eu uso insert com subquery desde o SQL2000 (antes disso desconheço). Seu exemplo no SQL2000/2005 ficaria assim:DECLARE @Tab TABLE(ID Int) INSERT INTO @Tab(ID) SELECT 1No MySQL é possível inserts desse tipo: INSERT INTO TABELA(ID) VALUES(1),(2),(3)…Isso é um padrão não implementado no MSSql que talvez esteja agora na versão 20008.Abraços.
Pois é, sim isso foi implementado no SQL 2008, se chama Row Constructors… Em relação ao seu insert, na verdade o SELECT 1 não é uma SubQuery, é uma consulta comum, uma subQuery seria um, select (select 1)ao invez deselect 1
Fabiano Neves, não sei se poder me ajudar
tenho um bd feito como planilha por um amador,kkkk.
e quero buscar os dados para o meu devidamente normalizado.
dai vem a duvida tenho como consulta-lo ja gerando um insert pra meu bd?
grato
Oi Adriano, da pra você ler os dados do excel e jogar em uma tabela no SQL Server… veja se esse meu post te ajuda
https://mcflyamorim.wordpress.com/2008/04/22/ler-dados-de-um-arquivo-excel/
Abraços