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