· 7 years ago · Jan 30, 2019, 03:38 PM
1Database
2
3DB_Papelaria.
4
5Schemas
6
7Pessoas;
8Resultados;
9Vendas;
10Transacoes.
11
12
13Tabelas
14
15VendasMan
16Empregados
17EmpregadosInfo
18Clientela
19ClientelaInfo
20Produtos
21Vendidos
22ItemVendidos
23Aquisicoes
24AquisicoesItem
25Tributos
26PointOfVendidos
27PagamentosType
28MethodOfPagamentos
29Department
30Post
31Fornecedor
32FornecedorInfo
33ClientelaInfo
34EmpregadosInfo
35Usuários
36
37adminPapelaria;
38appPapelaria.
39
40
41CREATE DATABASE [DB_Papelaria];
42
43
44IF NOT EXISTS (SELECT [NAME] FROM SYS.SCHEMAS WHERE NAME = ''Pessoas'')
45 EXEC(''CREATE SCHEMA [Pessoas];'');
46
47IF NOT EXISTS (SELECT [NAME] FROM SYS.SCHEMAS WHERE NAME = ''Resultados'')
48 EXEC(''CREATE SCHEMA [Resultados];'');
49
50IF NOT EXISTS (SELECT [NAME] FROM SYS.SCHEMAS WHERE NAME = ''Vendas'')
51 EXEC(''CREATE SCHEMA [Vendas];'');
52
53IF NOT EXISTS (SELECT [NAME] FROM SYS.SCHEMAS WHERE NAME = ''Transacoes'')
54 EXEC(''CREATE SCHEMA [Transacoes];'');
55GO
56
57
58IF NOT EXISTS (SELECT LOGINNAME FROM MASTER.DBO.SYSLOGINS WHERE NAME = ''adminPapelaria'' AND DBNAME = ''DB_Papelaria'')
59 CREATE LOGIN [adminPapelaria] WITH PASSWORD=N''adminPapelaria'', DEFAULT_DATABASE=[DB_Papelaria], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
60
61IF NOT EXISTS (SELECT LOGINNAME FROM MASTER.DBO.SYSLOGINS WHERE NAME = ''appPapelaria'' AND DBNAME = ''DB_Papelaria'')
62 CREATE LOGIN [appPapelaria] WITH PASSWORD=N''appPapelaria'', DEFAULT_DATABASE=[DB_Papelaria], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
63
64GO
65
66IF NOT EXISTS (SELECT [NAME] FROM SYSUSERS WHERE NAME = ''adminPapelaria'')
67 CREATE USER [adminPapelaria] FOR LOGIN [adminPapelaria]
68GO
69
70IF NOT EXISTS (SELECT [NAME] FROM SYSUSERS WHERE NAME = ''appPapelaria'')
71 CREATE USER [appPapelaria] FOR LOGIN [appPapelaria]
72GO
73
74
75
76
77
78
79
80
81
82---------------------------------
83
84
85
86
87
88
89IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''VendasMan'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
90 DROP TABLE [Pessoas].[VendasMan]
91GO
92
93CREATE TABLE [Pessoas].[VendasMan](
94 [Id] BIGINT IDENTITY(1, 1) NOT NULL
95 ,[Nickname] NVARCHAR(30) NOT NULL
96 ,[IdEmpregados] BIGINT NOT NULL
97 ,[Percent] MONEY NOT NULL
98 ,[VendasManType] INT NOT NULL CHECK([VendasManType] = 1 OR [VendasManType] = 2)--1 - Internal / 2 - External
99 ,PRIMARY KEY([Id])
100)
101GO
102
103IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Department'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
104 DROP TABLE [Pessoas].[Department]
105GO
106
107CREATE TABLE [Pessoas].[Department](
108 [Id] BIGINT IDENTITY(1, 1) NOT NULL
109 ,[Description] NVARCHAR(70) NOT NULL
110 ,PRIMARY KEY([Id])
111)
112GO
113
114IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Post'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
115 DROP TABLE [Pessoas].[Post]
116GO
117
118CREATE TABLE [Pessoas].[Post](
119 [Id] BIGINT IDENTITY(1, 1) NOT NULL
120 ,[Description] NVARCHAR(70) NOT NULL
121 ,PRIMARY KEY([Id])
122)
123GO
124
125IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Place'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
126 DROP TABLE [Pessoas].[Place]
127GO
128
129CREATE TABLE [Pessoas].[Place](
130 [Id] BIGINT IDENTITY(1, 1) NOT NULL
131 ,[ZipCode] NVARCHAR(20) NOT NULL
132 ,[Street] NVARCHAR(150) NOT NULL
133 ,[District] NVARCHAR(70) NOT NULL
134 ,[City] NVARCHAR(70) NOT NULL
135 ,[State] NVARCHAR(70) NOT NULL
136 ,[Country] NVARCHAR(70) NOT NULL
137 ,PRIMARY KEY([Id])
138)
139GO
140
141IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Empregados'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
142 DROP TABLE [Pessoas].[Empregados]
143GO
144
145CREATE TABLE [Pessoas].[Empregados](
146 [Id] BIGINT IDENTITY(1, 1) NOT NULL
147 ,[IdDepartment] BIGINT NOT NULL
148 ,[IdPost] BIGINT NOT NULL
149 ,[FirstName] NVARCHAR(70) NOT NULL
150 ,[LastName] NVARCHAR(70) NOT NULL
151 ,[Birthdate] DATETIME NOT NULL
152 ,[Document] NVARCHAR(11) NOT NULL
153 ,[Salary] DECIMAL(38, 12) NOT NULL
154 ,PRIMARY KEY([Id])
155 ,CONSTRAINT [UQ_Empregados_Document] UNIQUE ([Document])
156)
157GO
158
159IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''EmpregadosInfo'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
160 DROP TABLE [Pessoas].[EmpregadosInfo]
161GO
162
163CREATE TABLE [Pessoas].[EmpregadosInfo](
164 [Id] BIGINT IDENTITY(1, 1) NOT NULL
165 ,[IdPlace] BIGINT NOT NULL
166 ,[Phone1] NVARCHAR(20) NOT NULL
167 ,[Phone2] NVARCHAR(20) NOT NULL
168 ,[Phone3] NVARCHAR(20) NOT NULL
169 ,[Mail1] NVARCHAR(150) NOT NULL
170 ,[Mail2] NVARCHAR(150) NOT NULL
171 ,PRIMARY KEY([Id])
172)
173GO
174
175CREATE TABLE [Pessoas].[Fornecedor](
176 [Id] BIGINT IDENTITY(1, 1) NOT NULL
177 ,[CorporateName] NVARCHAR(70) NOT NULL
178 ,[FancyName] NVARCHAR(70) NOT NULL
179 ,[Birthdate] DATETIME NOT NULL
180 ,[Document] NVARCHAR(11) NOT NULL
181 ,[Salary] DECIMAL(38, 12) NOT NULL
182 ,PRIMARY KEY([Id])
183 ,CONSTRAINT [UQ_Fornecedor_Document] UNIQUE ([Document])
184)
185GO
186
187IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''FornecedorInfo'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
188 DROP TABLE [Pessoas].[FornecedorInfo]
189GO
190
191CREATE TABLE [Pessoas].[FornecedorInfo](
192 [Id] BIGINT IDENTITY(1, 1) NOT NULL
193 ,[IdPlace] BIGINT NOT NULL
194 ,[Phone1] NVARCHAR(20) NOT NULL
195 ,[Phone2] NVARCHAR(20) NOT NULL
196 ,[Phone3] NVARCHAR(20) NOT NULL
197 ,[Mail1] NVARCHAR(150) NOT NULL
198 ,[Mail2] NVARCHAR(150) NOT NULL
199 ,PRIMARY KEY([Id])
200)
201GO
202
203IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Clientela'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
204 DROP TABLE [Pessoas].[Clientela]
205GO
206
207CREATE TABLE [Pessoas].[Clientela](
208 [Id] BIGINT IDENTITY(1, 1) NOT NULL
209 ,[FirstName] NVARCHAR(70) NOT NULL
210 ,[LastName] NVARCHAR(70) NOT NULL
211 ,[Birthdate] DATETIME NOT NULL
212 ,[Document] NVARCHAR(11) NOT NULL
213 ,PRIMARY KEY([Id])
214 ,CONSTRAINT [UQ_Clientela_Document] UNIQUE ([Document])
215)
216GO
217
218IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''ClientelaInfo'' AND O.[type] in (N''U'') AND S.name = ''Pessoas'')
219 DROP TABLE [Pessoas].[ClientelaInfo]
220GO
221
222CREATE TABLE [Pessoas].[ClientelaInfo](
223 [Id] BIGINT IDENTITY(1, 1) NOT NULL
224 ,[IdPlace] BIGINT NOT NULL
225 ,[Phone1] NVARCHAR(20) NOT NULL
226 ,[Phone2] NVARCHAR(20) NOT NULL
227 ,[Phone3] NVARCHAR(20) NOT NULL
228 ,[Mail1] NVARCHAR(150) NOT NULL
229 ,[Mail2] NVARCHAR(150) NOT NULL
230 ,PRIMARY KEY([Id])
231)
232GO
233
234IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Produtos'' AND O.[type] in (N''U'') AND S.name = ''Resultados'')
235 DROP TABLE [Resultados].[Produtos]
236GO
237
238CREATE TABLE [Resultados].[Produtos](
239 [Id] BIGINT IDENTITY(1, 1) NOT NULL
240 ,
241 NVARCHAR(15) NOT NULL
242 ,[Description] NVARCHAR(150) NOT NULL
243 ,[Stock] INT NOT NULL
244 ,[CostPrice] DECIMAL(38, 12) NOT NULL
245 ,PRIMARY KEY([Id])
246)
247GO
248
249IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Vendidos'' AND O.[type] in (N''U'') AND S.name = ''Vendas'')
250 DROP TABLE [Vendas].[Vendidos]
251GO
252
253CREATE TABLE [Vendas].[Vendidos](
254 [Id] BIGINT IDENTITY(1, 1) NOT NULL
255 ,[IdPagamentosType] BIGINT NOT NULL
256 ,[IdMethodOfPagamentos] BIGINT NOT NULL
257 ,[IdClientela] BIGINT NOT NULL
258 ,[DeliveryDate] DATETIME NOT NULL
259 ,[VendidosDate] DATETIME NOT NULL
260 ,[ValueTotal] DECIMAL(38, 12) NOT NULL
261 ,[QtyTotal] INT NOT NULL
262 ,[Obs] NVARCHAR(MAX) NOT NULL
263 ,PRIMARY KEY([Id])
264)
265GO
266
267IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''ItemVendidos'' AND O.[type] in (N''U'') AND S.name = ''Vendas'')
268 DROP TABLE [Vendas].[ItemVendidos]
269GO
270
271CREATE TABLE [Vendas].[ItemVendidos](
272 [Id] BIGINT IDENTITY(1, 1) NOT NULL
273 ,[IdProdutos] BIGINT NOT NULL
274 ,[Value] DECIMAL(38, 12) NOT NULL
275 ,[Qty] INT NOT NULL
276 ,PRIMARY KEY([Id])
277)
278GO
279
280IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Aquisicoes'' AND O.[type] in (N''U'') AND S.name = ''Transacoes'')
281 DROP TABLE [Transacoes].[Aquisicoes]
282GO
283
284CREATE TABLE [Transacoes].[Aquisicoes](
285 [Id] BIGINT IDENTITY(1, 1) NOT NULL
286 ,[IdPagamentosType] BIGINT NOT NULL
287 ,[IdMethodOfPagamentos] BIGINT NOT NULL
288 ,[IdFornecedor] BIGINT NOT NULL
289 ,[DeliveryDate] DATETIME NOT NULL
290 ,[AquisicoesDate] DATETIME NOT NULL
291 ,[ValueTotal] DECIMAL(38, 12) NOT NULL
292 ,[QtyTotal] INT NOT NULL
293 ,[Obs] NVARCHAR(MAX) NOT NULL
294 ,PRIMARY KEY([Id])
295)
296GO
297
298IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''AquisicoesItem'' AND O.[type] in (N''U'') AND S.name = ''Transacoes'')
299 DROP TABLE [Transacoes].[AquisicoesItem]
300GO
301
302CREATE TABLE [Transacoes].[AquisicoesItem](
303 [Id] BIGINT IDENTITY(1, 1) NOT NULL
304 ,[IdProdutos] BIGINT NOT NULL
305 ,[Value] DECIMAL(38, 12) NOT NULL
306 ,[Qty] INT NOT NULL
307 ,PRIMARY KEY([Id])
308)
309GO
310
311IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''PointOfVendidos,'' AND O.[type] in (N''U'') AND S.name = ''Transacoes'')
312 DROP TABLE [Transacoes].[PointOfVendidos]
313GO
314
315CREATE TABLE [Transacoes].[PointOfVendidos](
316 [Id] BIGINT IDENTITY(1, 1) NOT NULL
317 ,[IdEmpregados] BIGINT NOT NULL
318 ,[Place] NVARCHAR(150) NOT NULL
319 ,[StartDateOfWork] DATETIME NULL
320 ,[EndDateOfWork] DATETIME NULL
321 ,PRIMARY KEY([Id])
322)
323GO
324
325IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''Tributos'' AND O.[type] in (N''U'') AND S.name = ''dbo'')
326 DROP TABLE [dbo].[Tributos]
327GO
328
329CREATE TABLE [dbo].[Tributos](
330 [Id] BIGINT IDENTITY(1, 1) NOT NULL
331 ,[Description] NVARCHAR(150) NOT NULL
332 ,[Value] MONEY NOT NULL
333 ,PRIMARY KEY([Id])
334)
335GO
336
337IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''PagamentosType'' AND O.[type] in (N''U'') AND S.name = ''dbo'')
338 DROP TABLE [dbo].[PagamentosType]
339GO
340
341CREATE TABLE [dbo].[PagamentosType](
342 [Id] BIGINT IDENTITY(1, 1) NOT NULL
343 ,[Description] NVARCHAR(150) NOT NULL
344 ,PRIMARY KEY([Id])
345 ,CONSTRAINT [UQ_PagamentosType_Description] UNIQUE ([Description])
346)
347GO
348
349IF EXISTS (SELECT O.* FROM sys.objects O JOIN sys.schemas S ON S.[schema_id] = O.[schema_id] WHERE O.[name] = ''MethodOfPagamentos '' AND O.[type] in (N''U'') AND S.name = ''dbo'')
350 DROP TABLE [dbo].[MethodOfPagamentos]
351GO
352
353CREATE TABLE [dbo].[MethodOfPagamentos](
354 [Id] BIGINT IDENTITY(1, 1) NOT NULL
355 ,[Description] NVARCHAR(150) NOT NULL
356 ,[Qty] INT NOT NULL
357 ,PRIMARY KEY([Id])
358 ,CONSTRAINT [UQ_MethodOfPagamentos_Description] UNIQUE ([Description])
359)
360GO
361
362--------
363
364
365
366
367
368
369
370
371Abaixo temos uma breve explicação dos comandos que foram utilizados (MSDN, 2013).
372
373
374
375
376CREATE DATABASE: Cria um novo banco de dados e os arquivos usados para armazenar o banco de dados. Cria um instantâneo de banco de dados, ou atribui um banco de dados a partir dos arquivos destacadas de um banco de dados previamente criado.
377
378EXISTS: Especifica uma subconsulta para testar a existência de linhas.
379
380EXEC: Executa uma sequência de comando ou cadeia de caracteres dentro de um lote Transact-SQL, ou um dos seguintes módulos: procedimento armazenado do sistema definido pelo usuário, procedimento armazenado com valor escalar definido pelo usuário, função ou procedimento armazenado estendido.
381
382CREATE SCHEMA: Cria um esquema no banco de dados atual. A transação também pode criar tabelas e exibições no novo esquema, e definir GRANT, DENY ou REVOKE nesses objetos.
383
384CREATE LOGIN: Cria um login novo SQL Server.
385
386CREATE USER: Cria um usuário no banco de dados atual.
387
388DROP TABLE: Remove uma ou mais definições de tabela e todos os dados, Ãndices, gatilhos, restrições e especificações de permissão para essas tabelas.
389
390CREATE TABLE: Cria uma nova tabela no SQL Server.
391
392CHECK: A restrição CHECK é usada para limitar o intervalo de valores que podem ser colocados em uma coluna.
393
394PRIMARY KEY: A restrição de chave primária identifica exclusivamente cada registro em uma tabela de banco de dados.
395
396IDENTITY: Indica que a coluna será do tipo auto-incremento.
397
398UNIQUE: Indica que a coluna não poderá receber valores repetidos.
399
400
401
402
403----------------------------------