Olá pessoal…
Hoje vou mostrar como gerar um Create Table completo de uma tabela no SQL Server utilizando uma procedure.
A procedure desenvolvida é:
--Exclui procedure IF OBJECT_ID('dbo.scriptCreate', 'P') IS NOT NULL DROP PROCEDURE [dbo].[scriptCreate] GO --Recria a procedure CREATE PROCEDURE scriptCreate( @Tabela Varchar(200) ) AS --Desabilitando a saída "(x row(s) affected)" SET NOCOUNT ON --Criando a tabela que irá contar as linhas do create table DECLARE @Create_Table TABLE(s VARCHAR(1000), id INT IDENTITY) --Criação Inicial INSERT INTO @Create_Table(s) VALUES ('CREATE TABLE ' + @Tabela + ' (') --Colunas do Create INSERT INTO @Create_Table(s) SELECT '['+column_name+'] ' + data_type + CASE WHEN RTrim(data_type) = 'image' THEN '' ELSE coalesce('('+cast(character_maximum_length AS VARCHAR)+')','') END + ' ' + CASE WHEN EXISTS ( SELECT id FROM syscolumns WHERE object_name(id)=@Tabela AND name=column_name AND columnproperty(id,name,'IsIdentity') = 1 ) THEN 'IDENTITY(' + cast(ident_seed(@Tabela) AS VARCHAR) + ',' + cast(ident_incr(@Tabela) AS VARCHAR) + ')' ELSE '' END + ' ' + ( CASE WHEN IS_NULLABLE = 'No' OR RTrim(column_name) = 'R_E_C_N_O_' THEN 'NOT ' ELSE '' END ) + 'NULL ' + coalesce('DEFAULT '+COLUMN_DEFAULT,'') + ',' FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = @Tabela ORDER BY ordinal_position --Agora pega a primary key da tabela DECLARE @PKName varchar(100) SELECT @PKName = constraint_name FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE table_name = @Tabela AND constraint_type='PRIMARY KEY' --Se tiver indice IF ( @PKName is not null ) BEGIN INSERT INTO @Create_Table(s) values(' PRIMARY KEY (') INSERT INTO @Create_Table(s) SELECT ' ['+COLUMN_NAME+'],' FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE constraint_name = @PKName ORDER BY ordinal_position --Remove a última vírgula UPDATE @Create_Table SET s=left(s,len(s)-1) WHERE id=@@identity INSERT INTO @Create_Table(s) VALUES (' )') END --Senão, remove a ultima vírgula ELSE BEGIN UPDATE @Create_Table set s=left(s,len(s)-1) WHERE id=@@identity END --Fechando o último parêntestes INSERT INTO @Create_Table(s) values( ')' ) --Agora seleciona os dados SELECT * FROM @Create_Table
Para executar, basta chamar a procedure e a tabela que você deseja, por exemplo:
exec scriptCreate 'SB1990'
Abaixo um print do resultado da execução.
Referências:
– Stack Overflow
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Boa tarde. Gostaria de saber se você pode me ajudar a desenvolver (resolver) este projeto? Preciso dele pra hoje, pois amanhã irei apresenta-lo.
Descrição do Trabalho Final
(Projeto de Banco de Dados de uma PARÓQUIA)
Os alunos deverão desenvolver um Projeto de Banco de Dados Completo. O trabalho deverá ser feito com a ferramenta SQLite (para os scripts SQL) e brModelo (para o DER). O projeto será realizado em duplas (obs: os dois alunos devem postar o mesmo documento individualmente). A entrega do trabalho corresponderá a um documento PDF dividido em 4 partes:
1. Um diagrama Entidade-Relacionamento
2. Um script SQL de criação das tabelas
3. Um script SQL de povoamento das tabelas (no mínimo 5 linhas para cada tabela). Aqui você irá preencher as tabelas com dados fictícios, usando INSERT/UPDATE
4. Um script SQL com 5 consultas de busca que envolvem mais de uma tabela (operação de join)
A Descrição do minimundo segue abaixo:
1. Descrição do mundo real a ser modelado pela aplicação
Uma casa paroquial (secretaria de igreja) é definida por ser um local que tem como objetivo ajudar na organização de uma igreja, marcando cerimônias (batizados, casamentos etc) e organizando contas e aspectos organizacionais da paróquia.
Dentro deste ambiente há dois personagens principais: os fiéis e os funcionários. O fiel solicitará a marcação de alguma cerimônia ou evento por funcionários, direta ou indiretamente, de acordo com a sua função (padre, assessor ou auxiliar de padre). A partícula (i.e. depois de consagrada, a hóstia) é fornecida à casa paroquial por um fornecedor. Também há o dízimo que é pago pelos fieis.
2. Descrição dos objetivos da aplicação
De acordo com o panorama das casas paroquiais, observamos que é possível melhorar a forma de gerenciar as marcações de cerimônias, fiéis e funcionários da igreja de maneira fácil e intuitiva. De forma geral, a aplicação registrará os fiéis e gerenciará as marcações de cerimônias, bem como o recebimento das partículas do(s) fornecedore(s) e o pagamento do dízimo pelos fiéis.
3. Descrição informal dos dados (entidades, relacionamento, atributos, etc.) observados
Uma Casa Paroquial (Secretaria de Igreja) é composta por PESSOAS, que possuem: nome, CPF, sexo, data de nascimento, telefone(s) e endereço (logradouro, cidade, estado e CEP). Uma PESSOA pode ser um FIEL ou um FUNCIONÁRIO. FIÉIS possuem um diaIngresso, atributo que indica quando o FIEL se cadastrou na Casa Paroquial e uma matrícula. FUNCIONÁRIOS possuem uma data de admissão, e uma matrícula. Dentro do quadro de funcionários existem três especializações: ASSESSOR, que possui uma função e um salário, PADRE, que possui uma validadeServiço e um AUXILIAR DE PADRE, que possui um padreResponsável. Uma CERIMÔNIA, que possui um celebrante, um id, um acessor responsável e uma data/hora. Também existe um CERIMÔNIA_FIÉIS que relaciona os fiéis com a cerimônia.
Uma cerimônia pode ser agendada por um assessor para vários fiéis e vários fiéis podem agendar uma ou mais cerimônias através de um assessor. Um assessor coordena vários assessores e os assessores são coordenados por um assessor. Um padre convida um auxiliar de padre e um auxiliar de padre é convidado por um padre. Um padre celebra várias cerimônias assistidas por vários fiéis e as cerimônias são celebradas por no máximo um padre. Um auxiliar de padre pode auxiliar um padre em várias cerimônias e as cerimônias podem ser auxiliadas por vários auxiliares de padre. Um fiel paga o dízimo e o dízimo é pago por um fiel.
Bom dia Maria, tudo bem?
Opa, ajudo sim, qual é a sua dúvida?
Abraços.
essa aí dançou hushuahuehuauhuhehuahuehua
sério que ela queria que você respondesse a lição dela ? kkkkkkkkkkkkkkkkkkkkkk