Usuário com melhor resposta
Como criar uma nova tabela no SQL Compact Edition, a partir de um select

Pergunta
-
Eu estava desenvolvendo uma aplicação onde eu trabalhava com o Banco SQL Server, mas para facilitar na hora da instalação e utilização resolvi mudar para SQL Compact, pois o computador onde vou usar essa aplicação não tem SQL Server instalado.
Bom minha duvida é a seguinte, com SQL Server eu usava a seguinte expressão para verificar a existência de uma tabela e gerar outra com um SELECT INTO, mas no SQL Compact essa expressão não funcionou.
Segue a expressão utilizada no SQL Server :
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tab_classifica]') AND type in (N'U'))
DROP TABLE [dbo].[tab_classifica]
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tab_classifica]') AND type in (N'U')) begin
select COLOCAÇÃO = IDENTITY(int , 1, 1), NOME,ESCOLA,TOTAL into tab_classifica from tabAtleta where NIVEL = 'NIVEL 1' and CATEGORIA = 'INFANTIL' and SEXO = 'MASCULINO' order by TOTAL desc,SOLO desc
alter table tab_classifica add PONTOS int
end
Essa expressão funcionava no SQL Server, agora eu preciso fazer alguma coisa para gerar uma tabela no SQL Compact, onde eu verifico a existência da tabela, apago ela caso exista, e gere novamente, com os novos dados.
Obrigado !
Respostas
-
Deleted
- Sugerido como Resposta Thiago Patrocinio segunda-feira, 14 de julho de 2014 20:56
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 16 de julho de 2014 14:53
Todas as Respostas
-
Deleted
- Sugerido como Resposta Thiago Patrocinio segunda-feira, 14 de julho de 2014 20:56
- Marcado como Resposta Junior Galvão - MVPMVP, Moderator quarta-feira, 16 de julho de 2014 14:53
-
@Lerandro
Como apontado pelo Jose, não é possível utilizar SELECT INTO no SQL Compact.
A forma para se fazer isso é mesmo através de INSERT INTO SELECT FROM.
Segue um link de referência:
http://smilingsmith.blogspot.com.br/2010/05/sql-compact-table-copy.html
Até mais,
TP. -
-
Bom a parte do If, eu provavelmente não vou utilizar mais, alterei algumas coisas no programa, não sendo mais necessário verificar a existência da tabela.
Mas nem todos os inserts estão funcionando por exemplo esse:
INSERT into tab_pontos1MM (ESCOLA, PONTOS ) SELECT ESCOLA, SUM (PONTOS) AS PONTOS FROM tab_classifica GROUP BY ESCOLA ORDER BY SUM (PONTOS) DESC
se algum puder dar uma ajuda agradeço...
obrigado.
-
-
-
Testei o código e apenas a parte do IF não funcionou.
tem alguma outra forma de verificar a existência de uma tabela ?
Qual foi a mensagem de erro?
A messgem de erro é essa:
Query 1 : There was an arror parsing the query. [Token line number = 1, Token in error=IF
Leandro, a forma que utilizava:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tab_classifica]') AND type in (N'U'))
DROP TABLE [dbo].[tab_classifica]funciona?
Funcionava no SQL Server 2012.
Se funcionar, utilize-a.
Qual é a versão do SQL Server Compact?
eu estou utilizando a versão SQL Compact Edition 4.0
José Diz Belo Horizonte, MG - Brasil
(Se encontrou a solução nesta resposta, ou se o conteúdo foi útil, lembre-se de marcá-la)
-
Eu sei que não faz sentido inserir já ordenando, mas é que o campo colocação é identity, assim ele ja colocaria na ordem.
Eu estou iniciando em banco de dados, comecei essa matéria esse ano na faculdade, no próximo semestre devo aprender mais coisas sobre SQL, mas por enquanto eu ainda não sei numerar uma coluna na ordem, de acordo com o retorno do select.
Eu preciso numerar a coluna COLOCAÇÃO de acordo com a pontuação da pessoa.
-
Deleted
- Sugerido como Resposta Thiago Patrocinio quinta-feira, 17 de julho de 2014 17:36
-