Final Script
Final Script
---------------------------TRIGGER------------------------
---------------------------------------------------------
SELECT * FROM [HumanResources].[Shift]
------------------------------------------------------
----------DATABASE LEVEL TRIGGER
-----------------------------------------------------
----STORED PROCEDURES
-----------------------------------------------------
CREATE PROCEDURE MyTestProc
AS
SET NOCOUNT ON
SELECT * FROM [HumanResources].[Shift]
EXECUTE MyTestProc
EXEC MyTestProc2
--OUTPUT PARAMETERS
CREATE PROC MyOutputSP
@TopShift varchar(50) OUTPUT
AS
SET @TopShift = (SELECT TOP(1) ShiftID FROM [HumanResources].[Shift])
------------------------------------------
----USER DEFINED FUNCTIONS
------------------------------------------
SELECT * FROM [Sales].[SalesTerritory]
---PARAMETERIZED FUNCTIONS
SELECT * FROM [Sales].[SalesTerritory]
RETURNS MONEY
AS
BEGIN
DECLARE @YTDSALES AS MONEY
SELECT @YTDSALES = SUM(SalesYTD) FROM [Sales].[SalesTerritory]
WHERE [GROUP] = @GROUP
RETURN @YTDSALES
END
DECLARE @RESULTS MONEY
SELECT @RESULTS = dbo.YTD_GROUP('Europe')
PRINT @RESULTS
---TRANSACTIONS
SELECT * FROM [Sales].[SalesTerritory]
BEGIN TRANSACTION
UPDATE Sales.SalesTerritory
SET CostYTD = 1.00
WHERE TerritoryID = 1
COMMIT TRANSACTION
IF(@ERRORRESULTS = 0)
BEGIN
PRINT 'SUCCESS!!!!'
COMMIT TRANSACTION
END
ELSE
BEGIN
PRINT 'STATEMENT FAILED!!!!'
ROLLBACK TRANSACTION
end
IF(@ERRORRESULTS = 0)
BEGIN
PRINT 'SUCCESS!!!!'
COMMIT TRANSACTION
END
ELSE
BEGIN
RAISERROR('STATEMENT FAILED - THIS IS MY CUSTOM MESSAGE', 16, 1)
ROLLBACK TRANSACTION
end
commit TRANSACTION
END TRY
BEGIN CATCH
PRINT 'CATCH STATEMENT ENTERED'
ROLLBACK TRANSACTION
END CATCH
--CTE
SELECT * FROM [Sales].[SalesTerritory]
WITH CTE_SALESTERR
AS
(
SELECT Name, CountryRegionCode FROM Sales.SalesTerritory
)
---GROUP BY
SELECT * FROM [Sales].[SalesTerritory]
UNION ALL
UNION ALL
---GROUPING SETS
SELECT Name, CountryRegionCode, [Group], SUM(SalesYTD)
FROM [Sales].[SalesTerritory]
GROUP BY GROUPING SETS
(
(Name),
(Name, CountryREgionCode),
(Name, CountryRegionCode, [Group])
)
--ROLLUP
SELECT Name, CountryRegionCode, [Group], SUM(SalesYTD)
FROM [Sales].[SalesTerritory]
GROUP BY ROLLUP
(
(Name, CountryRegionCode, [Group])
)
--CUBE
SELECT Name, CountryRegionCode, [Group], SUM(SalesYTD)
FROM [Sales].[SalesTerritory]
GROUP BY CUBE
(
(Name, CountryRegionCode, [Group])
)
--RANKING FUNCTIONS
SELECT POSTALCODE
,ROW_NUMBER() OVER (ORDER BY POSTALCODE) AS 'ROW NUMBER'
,RANK() OVER (ORDER BY POSTALCODE) AS 'RANK'
,DENSE_RANK() OVER (ORDER BY POSTALCODE) AS 'DENSE RANK'
,NTILE(10) OVER (ORDER BY POSTALCODE) AS 'NTILE'
FROM [Person].[Address]
WHERE POSTALCODE IN ('98052', '98027', '98055' , '97205')
---XML DATATYPE
----PARTITIONS
use partitiondb
go
declare @i int
set @i = 0
while @i < 10000
begin
insert into tbpartition (empdate) values (getdate())
set @i = @i + 1
select $partition.cust_part_func(empID) as 'partition number', *
from tbpartition
---PIVOT
select * from sales.salesterritory
---Dynamic Queries
declare @sqlstring varchar(2000)
set @sqlstring = 'select countryregioncode, [group], '
set @sqlstring = @sqlstring + 'salesytd from sales.salesterritory'
print @sqlstring
exec (@sqlstring)