Chapter 12) Modifying data

USE AdventureWorks2012;
INSERT INTO HumanResources.Department(Name, GroupName, ModifiedDate)
VALUES('Payroll', 'Executive General and Administration', '6/12/2012');
USE AdventureWorks2012;
SET IDENTITY_INSERT HumanResources.Department ON
INSERT INTO HumanResources.Department(DepartmentID, Name, GroupName, ModifiedDate)
VALUES(18, 'International Marketing', 'Sales and Marketing', '5/26/2012');
SET IDENTITY_INSERT HumanResources.Department OFF
USE AdventureWorks2012
GO
IF(OBJECT_ID('dbo.States')) IS NOT NULL
	DROP TABLE dbo.States
GO
CREATE TABLE dbo.States
(
	StateID int PRIMARY KEY,
	StateName varchar(50),
	StateAbbrev char(2)
)
GO
USE AdventureWorks2012
GO
CREATE SEQUENCE dbo.StateSeq
AS int
START WITH 1
INCREMENT BY 1
GO
USE AdventureWorks2012
GO
INSERT INTO dbo.States(StateID, StateAbbrev, StateName)
VALUES	(NEXT VALUE FOR dbo.StateSeq, 'LA', 'Louisiana')
INSERT INTO dbo.States(StateID, StateAbbrev, StateName)
VALUES  (NEXT VALUE FOR dbo.StateSeq, 'TX', 'Texas')
INSERT INTO dbo.States(StateID, StateAbbrev, StateName)	
VALUES  (NEXT VALUE FOR dbo.StateSeq, 'FL', 'Florida')
GO
SELECT * FROM dbo.States

USE AdventureWorks2012;
INSERT INTO HumanResources.Department(Name, GroupName, ModifiedDate)
VALUES
('International Sales', 'Sales and Marketing', '5/26/2012'),
('Media Control', 'Quality Assurance', '5/26/2012')
USE AdventureWorks2012;
INSERT INTO HumanResources.Department(Name, GroupName, ModifiedDate)
SELECT
Name+' USA', GroupName, ModifiedDate
FROM HumanResources.Department
WHERE DepartmentID IN (20, 19)
USE AdventureWorks2012;
SELECT
DepartmentID, Name, GroupName, ModifiedDate
INTO dbo.Department
FROM HumanResources.Department
USE AdventureWorks2012;
UPDATE HumanResources.Department
SET Name = Name +' Europe'
WHERE DepartmentID = 19
UPDATE Production.Product
SET ListPrice = p.ListPrice * 1.05
FROM Production.Product p
INNER JOIN Production.ProductSubcategory ps
ON p.ProductSubcategoryID = ps.ProductSubcategoryID
WHERE
ps.Name = 'Socks'
USE AdventureWorks2012;
DELETE FROM HumanResources.Department
FROM HumanResources.Department d
LEFT OUTER JOIN HumanResources.EmployeeDepartmentHistory ed
ON d.DepartmentID = ed.DepartmentID
WHERE ed.DepartmentID IS NULL
USE AdventureWorks2012;
TRUNCATE TABLE dbo.Department
USE AdventureWorks2012;
MERGE dbo.Department destination
USING HumanResources.Department source
ON destination.Name = source.Name
WHEN MATCHED THEN
UPDATE
SET destination.Name = source.Name,
destination.GroupName = source.GroupName,
destination.ModifiedDate = source.ModifiedDate
WHEN NOT MATCHED BY TARGET THEN
INSERT (Name, GroupName, ModifiedDate)
VALUES (source.Name, source.GroupName, source.ModifiedDate);
USE AdventureWorks2012;
INSERT INTO HumanResources.Department
OUTPUT inserted.DepartmentID, inserted.Name, inserted.GroupName, inserted.
ModifiedDate
VALUES('International Marketing', 'Sales and Marketing', '5/26/2012');
USE AdventureWorks2012;
UPDATE HumanResources.Department
SET Name = Name +' Europe'
OUTPUT
deleted.Name AS OldName,
inserted.Name AS UpdateValue
WHERE DepartmentID = 23 AND
Name NOT LIKE '% Europe'
USE AdventureWorks2012;
GO
CREATE TABLE dbo.Department_Audit
(
DepartmentID int NOT NULL,
Name nvarchar(50) NOT NULL,
GroupName nvarchar(50) NOT NULL,
DeletedDate datetime NOT NULL
CONSTRAINT DF_Department_Audit_DeletedDate_Today DEFAULT(GETDATE())
)
USE AdventureWorks2012;
DELETE FROM dbo.Department
OUTPUT deleted.Departmentid, deleted.Name, deleted.GroupName
INTO dbo.Department_Audit(DepartmentID, Name, GroupName)
WHERE DepartmentID = 16

Chapter 13) Built-in scalar functions

SELECT GETDATE() AS GETDATE, SYSDATETIME() AS SYSDATETIME;
SELECT
DAY(GETDATE()) AS DAY,
MONTH(GETDATE()) AS MONTH,
YEAR(GETDATE()) AS YEAR,
DATENAME(WEEKDAY, GETDATE()) AS DATENAMEWeekDay,
DATEPART(M, GETDATE()) AS DATEPART,
DATEPART(WEEKDAY, GETDATE()) AS DatePartWeekDay,
DATENAME(MONTH, GETDATE()) AS DateNameMonth
SELECT
DATEFROMPARTS ( 1972, 5, 26) AS DATEFROMPARTS,
DATETIME2FROMPARTS ( 1972, 5, 26, 7, 14, 16, 10, 3 ) AS DATETIME2FROMPARTS,
DATETIMEFROMPARTS ( 1972, 5, 26, 7, 14, 16, 10) AS DATETIMEFROMPARTS,
DATETIMEOFFSETFROMPARTS ( 1972, 5, 26, 7, 14, 16, 10, 12, 0, 3 ) AS DATETIMEOFFSETFROMPARTS,
SMALLDATETIMEFROMPARTS ( 1972, 5, 26, 7, 14) SMALLDATETIMEFROMPARTS,
TIMEFROMPARTS(7, 14, 16, 10, 3) TIMEFROMPARTS
SELECT
DATEDIFF(dd, GETDATE(), '5/26/2013') AS DaysUntilMyBirthday,
DATEADD(y, 1, GETDATE()) AS DateAdd,
EOMONTH(GETDATE()) AS EOMonth, --New to SQL Server 2012
ISDATE(GETDATE()) AS IsValidDate,
ISDATE('13/1/2122') AS InvalidDate,
DATEPART(y, GETDATE()) AS DayOfYear
USE AdventureWorks2012;
SELECT TOP(10)
SalesOrderNumber,
TotalDue,
CAST(TotalDue AS decimal(10,2)) AS TotalDueCast,
OrderDate,
CAST(OrderDate AS DATE) AS OrderDateCast
FROM Sales.SalesOrderHeader;
SELECT
CONVERT(VARCHAR(20), GETDATE()) AS [Default],
CONVERT(VARCHAR(20), GETDATE(), 100) AS DefaultWithStyle,
CONVERT(VARCHAR(10), GETDATE(), 103) AS BritishFrenchStyle,
CONVERT(VARCHAR(8), GETDATE(), 105) AS ItalianStyle,
CONVERT(VARCHAR(8), GETDATE(), 112) AS ISOStyle,
CONVERT(VARCHAR(15), CAST('111111.22' AS MONEY), 1) AS MoneyWithCommas