Criar tabela se nao existir

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
 
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
 
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.
 
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
 
apocalipsus disse:
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.
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...
 
Back
Topo