Skip to content

Instantly share code, notes, and snippets.

@ignas-sakalauskas
ignas-sakalauskas / DatabaseSize.sql
Last active March 27, 2017 17:40
SQL database and tables sizes
-- Database size in MB
SELECT
SUM(reserved_page_count) * 8.0 / 1024 AS 'MB'
FROM sys.dm_db_partition_stats
-- https://ignas.me/tech/sql-database-tables-sizes/
@ignas-sakalauskas
ignas-sakalauskas / DummyRestfulApi.cs
Last active April 9, 2017 15:16
Dummy RESTful API
using System.Net;
using Microsoft.AspNetCore.Mvc;
namespace WebApplication4.Controllers
{
[Route("api/[controller]")]
public class ValuesController : Controller
{
[HttpGet]
public IActionResult Get()
@ignas-sakalauskas
ignas-sakalauskas / SelectAllTablesFromDatabase.sql
Created April 17, 2017 17:09
Select all tables from database
USE [YourDBName]
SELECT * FROM sys.Tables
SELECT * FROM sysobjects WHERE xtype='u'
-- https://ignas.me/tech/select-all-tables-database/
@ignas-sakalauskas
ignas-sakalauskas / ForceDropDatabaseWhenInUse.sql
Last active April 17, 2017 17:18
Force drop database when in use
USE master
ALTER DATABASE YourDatabaseName SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DROP DATABASE YourDatabaseName
-- https://ignas.me/tech/force-drop-database-when-in-use/
@ignas-sakalauskas
ignas-sakalauskas / sp_generate_inserts_Azure.sql
Created April 17, 2017 17:28
sp_generate_inserts Azure SQL
USE YourDatabaseName
GO
PRINT 'Checking for the existence of this procedure'
IF (SELECT OBJECT_ID('sp_generate_inserts','P')) IS NOT NULL
BEGIN
PRINT 'Procedure already exists. So, dropping it'
DROP PROC sp_generate_inserts
END
GO
@ignas-sakalauskas
ignas-sakalauskas / TryCatchInSQL.sql
Created April 17, 2017 17:36
Try … Catch in SQL
BEGIN
BEGIN TRY
SET NOCOUNT ON
SET XACT_ABORT ON
-- Code Which Doesn't Require Transaction
-- e.g. initialize variables
BEGIN TRANSACTION
@ignas-sakalauskas
ignas-sakalauskas / DeleteInBatches.sql
Created April 17, 2017 17:57
Clean and shrink SQL database
SET NOCOUNT ON;
DECLARE @rows int = 1;
DECLARE @now datetime = GETDATE();
WHILE @rows > 0
BEGIN
BEGIN TRANSACTION;
DELETE TOP (500) [ASPState].dbo.ASPStateTempSessions
CREATE PROCEDURE [dbo].[Maintenance_RefreshViews]
AS
--Refresh the underlying metadata of all views
DECLARE @viewName AS VARCHAR(255)
DECLARE listOfViews CURSOR FOR
SELECT [name] FROM sysobjects WHERE xtype = 'V' ORDER BY [name]
OPEN listOfViews
@ignas-sakalauskas
ignas-sakalauskas / QuickRowCount.sql
Created April 17, 2017 18:05
SQL Quick Row Count
SELECT so.name as TableName, ddps.row_count as [RowCount]
FROM sys.objects so
JOIN sys.indexes si ON si.OBJECT_ID = so.OBJECT_ID
JOIN sys.dm_db_partition_stats AS ddps ON si.OBJECT_ID = ddps.OBJECT_ID AND si.index_id = ddps.index_id
WHERE si.index_id < 2 AND so.is_ms_shipped = 0
ORDER BY ddps.row_count DESC
-- https://ignas.me/tech/sql-quick-row-count/
@ignas-sakalauskas
ignas-sakalauskas / HttpContextAccessor.HttpContext.Session.cs
Last active June 11, 2017 14:56
IHttpContextAccessor and Exceptions handling
public class TestDataService
{
private readonly IHttpContextAccessor _httpContextAccessor;
// Inject IHttpContextAccessor into constructor
public TestDataService(IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor));
}