Tuesday, June 11, 2019

SQL SERVER – How to Access the Previous Row and Next Row value


Using CTE

WITH CTE AS(
    SELECT rownum = ROW_NUMBER() OVER(ORDER BY p.BusinessEntityID),
    p.FirstName FROM Person.Person p
)
SELECT
prev.FirstName PreviousValue,
    CTE.FirstName,
    nex.FirstName NextValue
FROM CTE
LEFT JOIN CTE prev ON prev.rownum = CTE.rownum - 1
LEFT JOIN CTE nex ON nex.rownum = CTE.rownum + 1
GO




Using Lag and Lead

SELECT
LAG(p.FirstName) OVER(ORDER BY p.BusinessEntityID) PreviousValue,
    p.FirstName,
    LEAD(p.FirstName) OVER(ORDER BY p.BusinessEntityID) NextValue
FROM Person.Person p
GO

Tuesday, June 4, 2019

MS SQL Server - Select - Database Name

---------------------
SELECT DB_NAME() AS [Current Database];
---------------------------

USE master;
GO
SELECT DB_NAME(3)AS [Database Name];
GO


------------


SELECT DB_NAME(database_id) AS [Database], database_id
FROM sys.databases;  

SQL Server Query : Host name -Instance Name - Edition - Version - Product Level

SELECT @@SERVERNAME

or


SELECT 
  SERVERPROPERTY('MachineName') AS ComputerName,
  SERVERPROPERTY('ServerName') AS InstanceName, 
  SERVERPROPERTY('Edition') AS Edition,
  SERVERPROPERTY('ProductVersion') AS ProductVersion, 
  SERVERPROPERTY('ProductLevel') AS ProductLevel; 
GO 


https://docs.microsoft.com/en-us/sql/t-sql/functions/serverproperty-transact-sql?view=sql-server-2017


Recently Executed queries

 SELECT     txt.TEXT AS [SQL Statement],     qs.EXECUTION_COUNT [No. Times Executed],     qs.LAST_EXECUTION_TIME AS [Last Time Executed],   ...