Чтение онлайн

ЖАНРЫ

Язык программирования C#9 и платформа .NET5
Шрифт:

USE [AutoLot]

GO

CREATE NONCLUSTERED INDEX [IX_Inventory_MakeId] ON [dbo].[Inventory]

(

[MakeId] ASC

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Inventory]

WITH CHECK ADD CONSTRAINT [FK_Make_Inventory] FOREIGN

KEY([MakeId])

REFERENCES [dbo].[Makes] ([Id])

GO

ALTER TABLE [dbo].[Inventory] CHECK CONSTRAINT [FK_Make_Inventory]

GO

Создание

отношения между таблицами Inventory и Orders

Откройте окно нового запроса, введите следующие команды SQL и щелкните на кнопке Run (или нажмите <F5>):

USE [AutoLot]

GO

CREATE NONCLUSTERED INDEX [IX_Orders_CarId] ON [dbo].[Orders]

(

[CarId] ASC

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Orders]

WITH CHECK ADD CONSTRAINT [FK_Orders_Inventory] FOREIGN

KEY([CarId])

REFERENCES [dbo].[Inventory] ([Id])

GO

ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Inventory]

GO

Создание отношения между таблицами Orders и Customers

Откройте окно нового запроса, введите приведенные ниже команды SQL и щелкните на кнопке Run (или нажмите <F5>):

USE [AutoLot]

GO

CREATE UNIQUE NONCLUSTERED INDEX [IX_Orders_CustomerId_CarId] ON [dbo].[Orders]

(

[CustomerId] ASC,

[CarId] ASC

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[Orders]

WITH CHECK ADD CONSTRAINT [FK_Orders_Customers] FOREIGN

KEY([CustomerId])

REFERENCES [dbo].[Customers] ([Id])

ON DELETE CASCADE

GO

ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Customers]

GO

Создание отношения между таблицами Customers и CreditRisks

Откройте окно нового запроса, введите приведенные ниже команды SQL и щелкните на кнопке Run (или нажмите <F5>):

USE [AutoLot]

GO

CREATE NONCLUSTERED INDEX [IX_CreditRisks_CustomerId] ON [dbo].[CreditRisks]

(

[CustomerId] ASC

) ON [PRIMARY]

GO

ALTER TABLE [dbo].[CreditRisks]

WITH CHECK ADD CONSTRAINT [FK_CreditRisks_Customers]

FOREIGN KEY([CustomerId])

REFERENCES [dbo].[Customers] ([Id])

ON DELETE CASCADE

GO

ALTER TABLE [dbo].[CreditRisks] CHECK CONSTRAINT [FK_CreditRisks_Customers]

GO

На

заметку!
Наличие столбцов
FirstName/LastName
и отношение с таблицей преследует здесь только демонстрационные цели. В главе 23 они будут задействованы в более интересном сценарии.

Создание хранимой процедуры GetPetName

Позже в главе вы узнаете, как использовать ADO.NET для вызова хранимых процедур. Возможно, вам уже известно, что хранимые процедуры — это подпрограммы кода, хранящиеся внутри базы данных, которые выполняют какие-то действия. Подобно методам C# хранимые процедуры могут возвращать данные или просто работать с данными, ничего не возвращая. Добавьте одиночную хранимую процедуру, которая будет возвращать дружественное имя автомобиля на основе предоставленного

carId
. Откройте окно нового запроса и введите следующую команду SQL:

USE [AutoLot]

GO

CREATE PROCEDURE [dbo].[GetPetName]

@carID int,

@petName nvarchar(50) output

AS

SELECT @petName = PetName from dbo.Inventory where Id = @carID

GO

Щелкните на кнопке Run (или нажмите <F5>), чтобы создать хранимую процедуру.

Добавление тестовых записей

В отсутствие данных базы данных не особо интересны, поэтому удобно иметь сценарии, которые способны быстро загрузить тестовые записи в базу данных.

Записи таблицы Makes

Создайте новый запрос и выполните показанные далее операторы SQL для добавления записей в таблицу

Makes
:

USE [AutoLot]

GO

SET IDENTITY_INSERT [dbo].[Makes] ON

INSERT INTO [dbo].[Makes] ([Id], [Name]) VALUES (1, N'VW')

INSERT INTO [dbo].[Makes] ([Id], [Name]) VALUES (2, N'Ford')

INSERT INTO [dbo].[Makes] ([Id], [Name]) VALUES (3, N'Saab')

INSERT INTO [dbo].[Makes] ([Id], [Name]) VALUES (4, N'Yugo')

INSERT INTO [dbo].[Makes] ([Id], [Name]) VALUES (5, N'BMW')

INSERT INTO [dbo].[Makes] ([Id], [Name]) VALUES (6, N'Pinto')

SET IDENTITY_INSERT [dbo].[Makes] OFF

Записи таблицы Inventory

Чтобы добавить записи в таблицу

Inventory
, создайте новый запрос и выполните следующие операторы SQL:

Поделиться с друзьями: