Создание отношения между таблицами 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
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
USE [AutoLot]
GO
SET IDENTITY_INSERT [dbo].[Inventory] ON
GO
INSERT INTO [dbo].[Inventory] ([Id], [MakeId], [Color], [PetName])
VALUES (1, 1, N'Black',
N'Zippy')INSERT INTO [dbo].[Inventory] ([Id], [MakeId], [Color], [PetName])
VALUES (2, 2, N'Rust',
N'Rusty')INSERT INTO [dbo].[Inventory] ([Id], [MakeId], [Color], [PetName])
VALUES (3, 3, N'Black',
N'Mel')INSERT INTO [dbo].[Inventory] ([Id], [MakeId], [Color], [PetName])
VALUES (4, 4, N'Yellow',
N'Clunker')INSERT INTO [dbo].[Inventory] ([Id], [MakeId], [Color], [PetName])
VALUES (5, 5, N'Black',
N'Bimmer')INSERT INTO [dbo].[Inventory] ([Id], [MakeId], [Color], [PetName])
VALUES (6, 5, N'Green',
N'Hank')INSERT INTO [dbo].[Inventory] ([Id], [MakeId], [Color], [PetName])