-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsql\04_schema_sur.sql
More file actions
53 lines (48 loc) · 1.83 KB
/
Copy pathsql\04_schema_sur.sql
File metadata and controls
53 lines (48 loc) · 1.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/* =============================================================================
Archivo: 04_schema_sur.sql
Propósito: Crear las tablas 'libros' e 'historial_estados' dentro de
Biblioteca_Sur.
============================================================================= */
USE Biblioteca_Sur;
GO
IF OBJECT_ID('dbo.libros', 'U') IS NULL
BEGIN
CREATE TABLE dbo.libros (
id INT IDENTITY(1,1) PRIMARY KEY,
isbn NVARCHAR(20) NOT NULL,
titulo NVARCHAR(200) NOT NULL,
autor NVARCHAR(150) NULL,
estado NVARCHAR(10) NOT NULL
CONSTRAINT CK_libros_estado_sur
CHECK (estado IN ('LIBRE','RESERVADO')),
fecha_registro DATETIME2 NOT NULL DEFAULT SYSDATETIME()
);
PRINT 'Tabla dbo.libros creada en Biblioteca_Sur.';
END
ELSE
PRINT 'Tabla dbo.libros ya existe — se omite.';
GO
IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE name = 'IX_libros_isbn' AND object_id = OBJECT_ID('dbo.libros'))
CREATE INDEX IX_libros_isbn ON dbo.libros(isbn);
GO
IF OBJECT_ID('dbo.historial_estados', 'U') IS NULL
BEGIN
CREATE TABLE dbo.historial_estados (
id INT IDENTITY(1,1) PRIMARY KEY,
libro_id INT NOT NULL,
estado_anterior NVARCHAR(10) NOT NULL,
estado_nuevo NVARCHAR(10) NOT NULL,
fecha_cambio DATETIME2 NOT NULL DEFAULT SYSDATETIME(),
CONSTRAINT FK_hist_libro_sur
FOREIGN KEY (libro_id) REFERENCES dbo.libros(id)
);
PRINT 'Tabla dbo.historial_estados creada en Biblioteca_Sur.';
END
ELSE
PRINT 'Tabla dbo.historial_estados ya existe — se omite.';
GO
SELECT TABLE_NAME, TABLE_TYPE
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'dbo'
ORDER BY TABLE_NAME;
GO