Загрузил скрипты лаб 1-7

This commit is contained in:
2022-10-26 00:38:28 +03:00
commit 38c08028f1
56 changed files with 1380 additions and 0 deletions

View File

@@ -0,0 +1,35 @@
USE AW_Marketing
GO
CREATE SCHEMA Promotions
CREATE TABLE ProductDiscounts
(ProductID int PRIMARY KEY,
Discount decimal,
Description nvarchar(50))
ON CurrentData
GO
CREATE SCHEMA Sponsorship
CREATE TABLE SponsorshipDeals
(SponsorshipID int IDENTITY PRIMARY KEY,
Description nvarchar(200))
ON CurrentData
GO
CREATE SCHEMA PastPromotions
CREATE TABLE ProductDiscounts
(ProductID int,
Discount decimal,
Description nvarchar(50))
ON ArchivedData
GO
CREATE SCHEMA PastSponsorship
CREATE TABLE SponsorshipDeals
(SponsorshipID int,
Description nvarchar(200))
ON ArchivedData
GO

View File

@@ -0,0 +1,34 @@
USE AW_Marketing
GO
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
IF EXISTS (SELECT * FROM sys.tables t
JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE t.[Name] = 'SpecialOffers'
AND s.[Name] = 'Promotions')
DROP TABLE Promotions.SpecialOffers
IF EXISTS (SELECT * FROM sys.tables t
JOIN sys.schemas s ON t.schema_id = s.schema_id
WHERE t.[Name] = 'SpecialOffers'
AND s.[Name] = 'PastPromotions')
DROP TABLE PastPromotions.SpecialOffers
GO
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> filegroup
CREATE TABLE Promotions.SpecialOffers
(OfferID int IDENTITY PRIMARY KEY,
Description nvarchar(200),
StartDate datetime,
EndDate datetime,
DiscountPercent decimal)
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ArchivedData filegroup
CREATE TABLE PastPromotions.SpecialOffers
(OfferID int IDENTITY PRIMARY KEY,
Description nvarchar(200),
StartDate datetime,
EndDate datetime,
DiscountPercent decimal)
ON ArchivedData

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" ?>
<DeliveryList>
<Delivery SalesOrderID="43659">
<CustomerName>Steve Schmidt</CustomerName>
<Address>6126 North Sixth Street, Rockhampton</Address>
</Delivery>
<Delivery SalesOrderID="43660">
<CustomerName>Tony Lopez</CustomerName>
<Address>6445 Cashew Street, Rockhampton</Address>
</Delivery>
</DeliveryList>

View File

@@ -0,0 +1,47 @@
USE AdventureWorks
GO
-- Create Sales.GetCurrencyRate
-- Test Sales.GetCurrencyRate
-- Sales.GetCurrencyDiscountedProducts
CREATE FUNCTION Sales.GetCurrencyDiscountedProducts
(@CurrencyCode nchar(3))
RETURNS @tbl_products TABLE
(ProductID int,
Name nvarchar(50),
ListPrice money,
CurrencyPrice money,
DiscountDescription nvarchar(255),
DiscountPercentage smallmoney,
DiscountAmount money,
DiscountedPrice money,
DiscountedCurrencyPrice money)
AS
BEGIN
DECLARE @CurrencyRate float
SET @CurrencyRate = Sales.GetCurrencyRate(@CurrencyCode)
INSERT @tbl_products
SELECT P.ProductID,
P.Name,
P.ListPrice,
P.ListPrice * @CurrencyRate,
SO.Description,
SO.DiscountPct,
P.ListPrice * SO.DiscountPct,
P.ListPrice - P.ListPrice * SO.DiscountPct,
(P.ListPrice - P.ListPrice * SO.DiscountPct) * @CurrencyRate
FROM Sales.SpecialOfferProduct SOP INNER JOIN
Sales.SpecialOffer SO ON SOP.SpecialOfferID = SO.SpecialOfferID INNER JOIN
Production.Product P ON SOP.ProductID = P.ProductID
WHERE (SO.DiscountPct > 0) AND GetDate() BETWEEN StartDate AND EndDate
ORDER BY ProductID
RETURN
END
GO
-- Test Sales.GetCurrencyDiscountedProducts

Binary file not shown.

View File

@@ -0,0 +1,26 @@
Use Master
-- Setup user for execution context
IF NOT EXISTS (SELECT * FROM sys.syslogins WHERE name = 'MIAMI\Adam')
CREATE LOGIN [MIAMI\Adam]
FROM WINDOWS
WITH DEFAULT_DATABASE = AdventureWorks
GO
Use AdventureWorks
IF NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = 'Adam' AND type = 'U')
CREATE USER Adam FOR LOGIN [MIAMI\Adam]
GO
-- Setup data
UPDATE Sales.SpecialOffer
SET StartDate = DateAdd(day, -1, GetDate()),
EndDate = DateAdd(day, 27, GetDate())
WHERE SpecialOfferId IN (1,3,5,7,9,11,13,15)
UPDATE Sales.SpecialOffer
SET StartDate = DateAdd(day, 28, GetDate()),
EndDate = DateAdd(month, 2, GetDate())
WHERE SpecialOfferId IN (2,4,6,8,10,12,14,16)
GO

View File

@@ -0,0 +1,404 @@
USE [AdventureWorks]
-- Insert the test data
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(1,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(2,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(3,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(4,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(5,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(6,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(7,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(8,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(9,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(10,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(11,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(12,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(13,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(14,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(15,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(16,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(17,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(18,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(19,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(20,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(21,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(22,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(23,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(24,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(25,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(26,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(27,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(28,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(29,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(30,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(31,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(32,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(33,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(34,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(35,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(36,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(37,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(38,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(39,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(40,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
GO
TRUNCATE TABLE HumanResources.JobCandidateHistory

View File

@@ -0,0 +1,16 @@
/*
Update a record in the Person.Contact table in the AdventureWorks database.
*/
USE AdventureWorks
BEGIN TRANSACTION
UPDATE Person.Contact
SET FirstName = 'Fran'
WHERE ContactID = 6
-- For the purpose of the exercise, COMMIT TRANASACTION or ROLLBACK TRANSACTION are not used.
SELECT @@spid AS 'spid'
-- Use the SPID to identify the connection when using sys.dm_tran_locks.
ROLLBACK TRANSACTION

View File

@@ -0,0 +1,19 @@
/*
Read and update a record in the Person.Contact table in the AdventureWorks database.
*/
USE AdventureWorks
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET lock_timeout 5000
BEGIN TRANSACTION
SELECT * FROM Person.Contact WHERE ContactID = 10
UPDATE Person.Contact SET FirstName = 'Frances' WHERE ContactID = 6
-- For the purpose of the exercise, COMMIT TRANSACTION or ROLLBACK TRANSACTION are not used.
SELECT @@spid AS 'SPID'
-- Use the SPID to identify the connection when using sp_lock.
-- ROLLBACK TRANSACTION

View File

@@ -0,0 +1,2 @@
SELECT resource_type, request_mode,request_type, request_status, request_session_id
FROM sys.dm_tran_locks

Binary file not shown.

View File

@@ -0,0 +1,30 @@
-- This should fail
USE AdventureWorks
TRUNCATE TABLE [HumanResources].[JobCandidateHistory]
GO
USE AdventureWorks
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(1,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,-1
,GETDATE()
,1)
TRUNCATE TABLE [HumanResources].[JobCandidateHistory]
GO
-- This should succeed
USE AdventureWorks
INSERT INTO [HumanResources].[JobCandidateHistory]
VALUES
(1,
'<ns:Resume xmlns:ns="http://schemas.microsoft.com/sqlserver/2004/07/adventure-works/Resume">
<ns:ResumeData></ns:ResumeData>
</ns:Resume>'
,6
,GETDATE()
,1)
TRUNCATE TABLE [HumanResources].[JobCandidateHistory]
GO

View File

@@ -0,0 +1,20 @@
/*
Starts a transaction to read the record of
Linda Gonzales and update her first name.
Second select shows the uncommitted update.
@@trancount shows the number of open transactions.
*/
USE AdventureWorks
-- START TRANSACTION HERE
BEGIN TRANSACTION
SELECT @@trancount AS 'Transaction Count'
SELECT FirstName, MiddleName, LastName FROM Person.Contact WHERE ContactID = 342
UPDATE Person.Contact SET FirstName = 'Lin' WHERE ContactID = 342
-- END TRANSACTION HERE
COMMIT TRANSACTION
SELECT FirstName, MiddleName, LastName FROM Person.Contact WHERE ContactID = 342
SELECT @@trancount AS 'Transaction Count'

View File

@@ -0,0 +1,21 @@
/*
Starts a transaction to read the record of
Dominic Gonzalez and update his first name.
Second SELECT shows the uncommitted update.
@@trancount showS the number of open transactions.
Then the transaction is rolled back and the record read again.
*/
USE AdventureWorks
BEGIN TRANSACTION
SELECT @@trancount AS 'Transaction Count'
SELECT FirstName, MiddleName, LastName FROM Person.Contact WHERE ContactID = 7454
UPDATE Person.Contact SET FirstName = 'Dom' WHERE ContactID = 7454
SELECT FirstName, MiddleName, LastName FROM Person.Contact WHERE ContactID = 7454
SELECT @@trancount AS 'Transaction Count'
-- END TRANSACTION HERE
ROLLBACK TRANSACTION
SELECT FirstName, MiddleName, LastName FROM Person.Contact WHERE ContactID = 7454
SELECT @@trancount AS 'Transaction Count'