1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Criar tabela se nao existir

Discussão em 'Programação' iniciada por apocalipsus, 28 de Outubro de 2005. (Respostas: 7; Visualizações: 1923)

  1. apocalipsus

    apocalipsus Power Member

    Boas
    Estou com um problema muito chato :(

    Estou a trabalhar no visual studio e estou a programar em c#.
    Agora tenho aqui uma situaçao chata, tenho de criar tabelas SE elas nao existirem.
    Se tentar criar a tabela com ela la da erro.
    Se usar esta forma "Create table if not exists nome_tabela (....)" da erro.

    Ja nao sei o k fazer :(

    Tava a pensar talvez, arranjar uma maneira de ele me devolver o nome de todas as tabelas e ver se nesse nome existe o que quero mas sinceramente ou sou eu muito noob ou nao encontro maneira de fazer isto

    TX
     
  2. Delta

    Delta Suspenso

    em que base de dados ?
     
  3. dElpH!

    dElpH! 1st Folding then Sex

    Penso que estás a tentar criar em sql 2000.

    Faz assim cria uma tabela que contenha os nomes das tabelas todas ,
    Quando precisares de ver se existe uma tabela fazer um select a ver se existe,
    Caso exista nao fazes nada se nao existir crias uma.
    e fazes um update a tabela que contem o nome de todas as tabelas.

    alguma coisa avisa []'s
     
  4. apocalipsus

    apocalipsus Power Member

    Bolas é o sql 2005 eskeci de dizer.
    Vou tentar a tua maneira dElpH!
     
  5. dElpH!

    dElpH! 1st Folding then Sex

    ok.
    Crias uma tabela com o nome de todas as tabelas existentes na bdd.
    Depois fazes os testes a tua maneira.

    []'s
     
  6. NQ

    NQ Power Member

    Então mas com o SQL Command não consegues pôr lá o comando que queres ?

    sqlCommand1.CommandText = "CREATE ...."
    Depois criar o Adapter, associar o Command ao Adaptar e fazer o Adapter.Fill(...)

    Fui rever isto numa cena que fiz outro dia na brincadeira, para aprender umas coisas de C# (usando o Visual Studio).

    Antes disto podes usar o Command para de alguma maneira verificares se a tabela existe..tou enferrujado mas deves poder aceder a alguma tabela do sistema (Catálogo) que tenha a listagem das tabelas.

    Fica bem



    EDIT: Podes sempre criar a tabela sem verificar se existe, e apanhas a excepção se ela já existir.
     
  7. Karakatoa

    Karakatoa Power Member

    Olá pessoal

    Já agora uma dica que pode ajudar...
    Uma forma simples de verificar se uma tabela existe ou nao, ou mesmo obter o nome de todas as tabelas de uma base de dados em SQLServer 2000 é a utilização do INFORMATION_SCHEMA.
    Por exemplo para veres se uma tabela existe podes simplesmente fazer a query:

    SELECT count(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'nomeTabela'

    para obteres as tabelas que existem podes fazer a query:

    SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES

    No entanto, em C#, tens que criar um Command para a execução destas queries :D .

    Abraço
     
  8. BraBo

    BraBo Banido

    Isto vai ser um tiro no escuro, mas o utilizador com o qual fazes a ligação em C# é o mesmo que usas na administração da base de dados?!?!?!?!
    Se não for, pode ser que seja um problema de permissões...
     

Partilhar esta Página