Skip to content
David Kittell
David Kittell

Application & System: Development / Integration / Orchestration

  • Services
    • Application Development
    • Online Application Integration
  • Code
  • Online Tools
  • Tech Support
David Kittell

Application & System: Development / Integration / Orchestration

Azure – MSSQL Server Information

Posted on May 13, 2016 By David Kittell

Same as MSSQL Server Information but is specific to what will work in Azure

-- Basic Information
SELECT @@Servername AS [Server Name]
    --,@@ServiceName AS [Service Instance]
        ,Name AS [Database Name]
    ,create_date AS [Service Started]
    ,DATEDIFF(s, create_date, GETDATE()) / 86400.0 AS [Days Running]
    ,DATEDIFF(s, create_date, GETDATE()) AS [Seconds Runnig]
    ,@@VERSION AS [Server Version]
FROM sys.databases
GO

-- All Databases
SELECT @@SERVERNAME AS SERVER
    ,NAME AS DBName
    ,recovery_model_Desc AS RecoveryModel
    ,Compatibility_level AS CompatiblityLevel
    ,create_date
    ,state_desc
FROM sys.databases
ORDER BY NAME;

-- Active User Connections by Database
SELECT  @@Servername AS Server ,
        DB_NAME(database_id) AS DatabaseName ,
        COUNT(database_id) AS Connections ,
        Login_name AS LoginName ,
        MIN(Login_Time) AS Login_Time ,
        MIN(COALESCE(last_request_end_time, last_request_start_time))
                                                         AS Last_Batch
FROM    sys.dm_exec_sessions
WHERE   database_id > 0
        AND DB_NAME(database_id) NOT IN ( 'master', 'msdb' )
GROUP BY database_id ,
         login_name
ORDER BY DatabaseName;

-- Database Location
SELECT @@Servername AS SERVER
    ,DB_NAME() AS DB_Name
    ,File_id
    ,Type_desc
    ,NAME
    ,LEFT(Physical_Name, 1) AS Drive
    ,Physical_Name
    ,RIGHT(physical_name, 3) AS Ext
    ,Size
    ,Growth
FROM sys.database_files
ORDER BY File_id;
GO

-- List Views
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DB_Name
    ,o.NAME AS 'ViewName'
    ,o.Type
    ,o.create_date
    ,sm.[DEFINITION] AS 'View script'
FROM sys.objects o
INNER JOIN sys.sql_modules sm ON o.object_id = sm.OBJECT_ID
WHERE o.Type = 'V' -- View
ORDER BY o.NAME;
GO

-- List Synonymns
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DBName
    ,s.NAME AS synonyms
    ,s.create_date
    ,s.base_object_name
FROM sys.synonyms s
ORDER BY s.NAME;
GO

-- List Stored Procedures
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DB_Name
    ,o.NAME AS 'ViewName'
    ,o.[type]
    ,o.Create_date
    ,sm.[definition] AS 'Stored Procedure script'
FROM sys.objects o
INNER JOIN sys.sql_modules sm ON o.object_id = sm.object_id
WHERE o.[type] = 'P' -- Stored Procedures
    -- AND sm.[definition] LIKE '%insert%'
    -- AND sm.[definition] LIKE '%update%'
    -- AND sm.[definition] LIKE '%delete%'
    -- AND sm.[definition] LIKE '%tablename%'
ORDER BY o.NAME;
GO

-- List Functions
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DB_Name
    ,o.NAME AS 'FunctionName'
    ,o.[type]
    ,o.create_date
    ,sm.[DEFINITION] AS 'Function script'
FROM sys.objects o
INNER JOIN sys.sql_modules sm ON o.object_id = sm.OBJECT_ID
WHERE o.[Type] = 'FN' -- Function
ORDER BY o.NAME;
GO

-- List Triggers
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DB_Name
    ,OBJECT_NAME(Parent_object_id) AS TableName
    ,o.NAME AS 'TriggerName'
    ,o.Type
    ,o.create_date
    ,sm.[DEFINITION] AS 'Trigger script'
FROM sys.objects o
INNER JOIN sys.sql_modules sm ON o.object_id = sm.OBJECT_ID
WHERE o.Type = 'TR' -- Triggers
ORDER BY o.NAME;
GO

-- Check Contraints
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DBName
    ,OBJECT_SCHEMA_NAME(parent_object_id) AS SchemaName
    ,OBJECT_NAME(parent_object_id) AS TableName
    ,parent_column_id AS Column_NBR
    ,NAME AS CheckConstraintName
    ,type
    ,type_desc
    ,create_date
    ,OBJECT_DEFINITION(object_id) AS CheckConstraintDefinition
FROM sys.Check_constraints
ORDER BY TableName
    ,SchemaName
    ,Column_NBR
GO

-- Table Definitions
SELECT @@Servername AS SERVER
    ,DB_NAME() AS DBName
    ,isc.Table_Name AS TableName
    ,isc.Table_Schema AS SchemaName
    ,Ordinal_Position AS Ord
    ,isc.Column_Name
    ,Data_Type
    ,Numeric_Precision AS Prec
    ,Numeric_Scale AS Scale
    ,Character_Maximum_Length AS [Len]
    ,-- -1 means MAX like Varchar(MAX)
    Is_Nullable
    ,Column_Default
    ,Table_Type
FROM INFORMATION_SCHEMA.COLUMNS isc
INNER JOIN information_schema.tables ist ON isc.table_name = ist.table_name
-- WHERE Table_Type = 'BASE TABLE' -- 'Base Table' or 'View'
ORDER BY DBName
    ,TableName
    ,SchemaName
    ,Ordinal_position;

-- Column Defaults
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DB_Name
    ,OBJECT_SCHEMA_NAME(t.object_id) AS SchemaName
    ,t.NAME AS TableName
    ,c.Column_ID AS Ord
    ,c.NAME AS Column_Name
    ,OBJECT_NAME(default_object_id) AS DefaultName
    ,OBJECT_DEFINITION(default_object_id) AS Defaults
FROM sys.Tables t
INNER JOIN sys.columns c ON t.object_id = c.object_id
WHERE default_object_id <> 0
ORDER BY TableName
    ,SchemaName
    ,c.Column_ID
GO

-- Computed Columns
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DBName
    ,OBJECT_SCHEMA_NAME(t.object_id) AS SchemaName
    ,t.NAME AS TableName
    ,c.Column_ID AS Ord
    ,c.NAME AS Computed_Column
FROM sys.Tables t
INNER JOIN sys.Columns c ON t.object_id = c.object_id
WHERE is_computed = 1
ORDER BY t.NAME
    ,SchemaName
    ,c.Column_ID
GO

-- Identity Columns
SELECT @@Servername AS ServerName
    ,DB_NAME() AS DBName
    ,OBJECT_SCHEMA_NAME(object_id) AS SchemaName
    ,OBJECT_NAME(object_id) AS TableName
    ,Column_id
    ,NAME AS IdentityColumn
    ,Seed_Value
    ,Last_Value
FROM sys.identity_columns
ORDER BY SchemaName
    ,TableName
    ,Column_id;
GO

-- Foreign Keys
SELECT f.NAME AS ForeignKey
    ,SCHEMA_NAME(f.SCHEMA_ID) AS SchemaName
    ,OBJECT_NAME(f.parent_object_id) AS TableName
    ,COL_NAME(fc.parent_object_id, fc.parent_column_id) AS ColumnName
    ,SCHEMA_NAME(o.SCHEMA_ID) ReferenceSchemaName
    ,OBJECT_NAME(f.referenced_object_id) AS ReferenceTableName
    ,COL_NAME(fc.referenced_object_id, fc.referenced_column_id) AS ReferenceColumnName
FROM sys.foreign_keys AS f
INNER JOIN sys.foreign_key_columns AS fc ON f.OBJECT_ID = fc.constraint_object_id
INNER JOIN sys.objects AS o ON o.OBJECT_ID = fc.referenced_object_id
ORDER BY TableName
    ,ReferenceTableName;
GO

-- Finding Foreign Keys missing Indexes
-- Foreign Keys missing indexes
-- Note this script only works for creating single column indexes.
-- Multiple FK columns are out of scope for this script.
SELECT DB_NAME() AS DBName
    ,rc.Constraint_Name AS FK_Constraint
    ,
    -- rc.Constraint_Catalog AS FK_Database,
    -- rc.Constraint_Schema AS FKSch,
    ccu.Table_Name AS FK_Table
    ,ccu.Column_Name AS FK_Column
    ,ccu2.Table_Name AS ParentTable
    ,ccu2.Column_Name AS ParentColumn
    ,I.NAME AS IndexName
    ,CASE
        WHEN I.NAME IS NULL
            THEN 'IF NOT EXISTS (SELECT * FROM sys.indexes
                                    WHERE object_id = OBJECT_ID(N''' + RC.Constraint_Schema + '.' + ccu.Table_Name + ''') AND name = N''IX_' + ccu.Table_Name + '_' + ccu.Column_Name + ''') ' + 'CREATE NONCLUSTERED INDEX IX_' + ccu.Table_Name + '_' + ccu.Column_Name + ' ON ' + rc.Constraint_Schema + '.' + ccu.Table_Name + '( ' + ccu.Column_Name + ' ASC ) WITH (PAD_INDEX = OFF,
                                   STATISTICS_NORECOMPUTE = OFF,
                                   SORT_IN_TEMPDB = ON, IGNORE_DUP_KEY = OFF,
                                   DROP_EXISTING = OFF, ONLINE = ON);'
        ELSE ''
        END AS SQL
FROM information_schema.referential_constraints RC
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu ON rc.CONSTRAINT_NAME = ccu.CONSTRAINT_NAME
JOIN INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE ccu2 ON rc.UNIQUE_CONSTRAINT_NAME = ccu2.CONSTRAINT_NAME
LEFT JOIN sys.columns c ON ccu.Column_Name = C.NAME
    AND ccu.Table_Name = OBJECT_NAME(C.OBJECT_ID)
LEFT JOIN sys.index_columns ic ON C.OBJECT_ID = IC.OBJECT_ID
    AND c.column_id = ic.column_id
    AND index_column_id = 1
-- index found has the foreign key
--  as the first column
LEFT JOIN sys.indexes i ON IC.OBJECT_ID = i.OBJECT_ID
    AND ic.index_Id = i.index_Id
WHERE I.NAME IS NULL
ORDER BY FK_table
    ,ParentTable
    ,ParentColumn;
GO
All information on this site is shared with the intention to help. Before any source code or program is ran on a production (non-development) system it is suggested you test it and fully understand what it is doing not just what it appears it is doing. I accept no responsibility for any damage you may do with this code.

Related

Azure Code MSSQL MSSQL - Audit SQL azureMSSQLSQL

Post navigation

Previous post
Next post

Related Posts

Find Most Expensive Queries Using DMV

Posted on April 29, 2013October 26, 2015

SELECT TOP 10 SUBSTRING(qt.TEXT, (qs.statement_start_offset / 2) + 1, ( ( CASE qs.statement_end_offset WHEN – 1 THEN DATALENGTH(qt.TEXT) ELSE qs.statement_end_offset END – qs.statement_start_offset ) / 2 ) + 1) ,qs.execution_count ,qs.total_logical_reads ,qs.last_logical_reads ,qs.total_logical_writes ,qs.last_logical_writes ,qs.total_worker_time ,qs.last_worker_time ,qs.total_elapsed_time / 1000000 total_elapsed_time_in_S ,qs.last_elapsed_time / 1000000 last_elapsed_time_in_S ,qs.last_execution_time ,qp.query_plan FROM sys.dm_exec_query_stats qs CROSS…

Read More

Convert Text to VarChar

Posted on July 10, 2013October 26, 2015

CONVERT(varchar(8000),col1) Example: IP is varchar(50) and Hostname is Text Not sure why you would ever have a need for this but this is an example that works. SELECT id ,DATETIME ,(‘IP Address:’ + ipaddress) AS "IP Address" ,(‘Hostname: ‘ + CONVERT(VARCHAR(8000), hostname)) AS "Hostname" FROM pageview More practical use SELECT…

Read More

PHP CLI – Create WordPress Username

Posted on October 29, 2015February 26, 2016

Currently this code only creates a subscriber user in WordPress. Due to security concerns I likely won’t work on this to make it do greater permissions. php wp-create-user.php MyBasicUser User@example.com # php wp-create-user.php MyBasicUser User@example.com Username not in use, creating user. User Created Username: MyBasicUser Password: 5y1kZSkMO0bP # # php…

Read More

Code

Top Posts & Pages

  • PowerShell - Rename Pictures to Image Taken
  • Front Page
  • C# - Start/Stop/Restart Services
  • MacPorts / HomeBrew - Rip CD tracks from terminal
  • PowerShell - Show File Extensions

Recent Posts

  • Javascript – Digital Clock with Style
  • BASH – Web Ping Log
  • BASH – Picture / Video File Name Manipulation
  • Mac OSX Terminal – Create SSH Key
  • Bash – Rename Picture

Top Posts

  • PowerShell - Rename Pictures to Image Taken
  • C# - Start/Stop/Restart Services
  • MacPorts / HomeBrew - Rip CD tracks from terminal
  • PowerShell - Show File Extensions
  • SQLite - Auto-Increment / Auto Generate GUID
©2025 David Kittell | WordPress Theme by SuperbThemes