• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

skcratch

SQL Server - Remover tabelas

7 mensagens neste tópico

Viva!

Estou a implementar uma base de dados de uma Associação Desportiva para um trabalho de Base de Dados. Depois de programado o modelo físico, gostava de saber como posso remover as tabelas que já se encontram na DataBase correspondente no SQL Server. Cada vez que executo o script para a criação da base de dados, quero verificar que não se encontram tabelas na base de dados iguais àquelas que pretendo criar.

O problema é que eu não sei aceder a essas mesmas tabelas (path?) no SQL Server, isto é, consigo visualizá-las mas não sei como lhes aceder ao nível da programação, com o intuito de realizar a sua remoção.

Grato desde já por qualquer ajuda!

Cumps!

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como criaste o script para criar a base de dados e as tabelas ?

Para verificares se a tabela ja existe podes fazer assim...

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[NOME_DA_TABELA]') AND type in (N'U'))

BEGIN

...

END

Se gerares o script da base de dados e se puseres a True a propriedade "Include IF NOT EXISTS" poderás ver que é assim que é feito o teste.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Hmm acho que o que ele quer é mais algo do género

DROP TABLE IF EXISTS [Nome da tabela];
CREATE TABLE [Nome da tabela] ( ... );

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Dá para fazer apenas com o código da segunda forma? É tão eficaz como o primeiro? Estou a perguntar porque é muito mais reduzido e fácil de implementar...

Cumps!

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código do Saco é para MySQL.

if exists (select * from dbo.sysobjects where id = object_id(N'[nome_da_tabela]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [nome_da_tabela]
GO

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Viva!

Mas olha que eu já vi uma implementação muito parecida para SQL Server... Apenas gostaria de saber qual é a implementação mais eficaz...

Cumps!

:P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ups

O código do Saco é para MySQL.

if exists (select * from dbo.sysobjects where id = object_id(N'[nome_da_tabela]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [nome_da_tabela]
GO

Ups, tive esperança que o SQL fosse igual ao MySql, não me apeteceu experimentar :P

skcratch:  O que o Asgorath colocou é exactamente a mesma coisa que eu coloquei, simplesmente o meu código não funciona em SQL Server, mas apenas em MySql. E sim, penso que é a forma mais eficaz, pois sempre vi isso em todo o lado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora