Skip to content

Instantly share code, notes, and snippets.

@leanfj
Created May 10, 2023 17:07
Show Gist options
  • Save leanfj/3f8009d4feb457f155f81c599486138f to your computer and use it in GitHub Desktop.
Save leanfj/3f8009d4feb457f155f81c599486138f to your computer and use it in GitHub Desktop.
{
"Create a new Database": {
"prefix": "sqlCreateDatabase",
"body": [
"-- Create a new database called '${1:DatabaseName}'",
"-- Connect to the 'master' database to run this snippet",
"USE master",
"GO",
"-- Create the new database if it does not exist already",
"IF NOT EXISTS (",
"\tSELECT [name]",
"\t\tFROM sys.databases",
"\t\tWHERE [name] = N'${1:DatabaseName}'",
")",
"CREATE DATABASE ${1:DatabaseName}",
"GO"
],
"description": "Create a new Database"
},
"Drop a Database": {
"prefix": "sqlDropDatabase",
"body": [
"-- Drop the database '${1:DatabaseName}'",
"-- Connect to the 'master' database to run this snippet",
"USE master",
"GO",
"-- Uncomment the ALTER DATABASE statement below to set the database to SINGLE_USER mode if the drop database command fails because the database is in use.",
"-- ALTER DATABASE ${1:DatabaseName} SET SINGLE_USER WITH ROLLBACK IMMEDIATE;",
"-- Drop the database if it exists",
"IF EXISTS (",
"\tSELECT [name]",
"\t\tFROM sys.databases",
"\t\tWHERE [name] = N'${1:DatabaseName}'",
")",
"DROP DATABASE ${1:DatabaseName}",
"GO"
],
"description": "Drop a Database"
},
"Create a new Table": {
"prefix": "sqlCreateTable",
"body": [
"-- Create a new table called '[${1:TableName}]' in schema '[${2:dbo}]'",
"-- Drop the table if it already exists",
"IF OBJECT_ID('[${2:dbo}].[${1:TableName}]', 'U') IS NOT NULL",
"DROP TABLE [${2:dbo}].[${1:TableName}]",
"GO",
"-- Create the table in the specified schema",
"CREATE TABLE [${2:dbo}].[${1:TableName}]",
"(",
"\t[${3:Id}] INT NOT NULL PRIMARY KEY, -- Primary Key column",
"\t[${4:ColumnName2}] ${5:NVARCHAR(50)} NOT NULL,",
"\t[${6:ColumnName3}] ${7:NVARCHAR(50)} NOT NULL",
"\t$0-- Specify more columns here",
");",
"GO"
],
"description": "Create a new Table"
},
"Drop a Table": {
"prefix": "sqlDropTable",
"body": [
"-- Drop a table called '${1:TableName}' in schema '${2:dbo}'",
"-- Drop the table if it already exists",
"IF OBJECT_ID('[${2:dbo}].[${1:TableName}]', 'U') IS NOT NULL",
"DROP TABLE [${2:dbo}].[${1:TableName}]",
"GO"
],
"description": "Drop a Table"
},
"Add a new column to a Table": {
"prefix": "sqlAddColumn",
"body": [
"-- Add a new column '[${1:NewColumnName}]' to table '[${2:TableName}]' in schema '[${3:dbo}]'",
"ALTER TABLE [${3:dbo}].[${2:TableName}]",
"\tADD [${1:NewColumnName}] /*new_column_name*/ ${4:int} /*new_column_datatype*/ ${5:NULL} /*new_column_nullability*/",
"GO"
],
"description": "Add a new column to a Table"
},
"Drop a column from a Table": {
"prefix": "sqlDropColumn",
"body": [
"-- Drop '[${1:ColumnName}]' from table '[${2:TableName}]' in schema '[${3:dbo}]'",
"ALTER TABLE [${3:dbo}].[${2:TableName}]",
"\tDROP COLUMN [${1:ColumnName}]",
"GO"
],
"description": "Drop a column from a Table"
},
"Select rows from a Table or a View": {
"prefix": "sqlSelect",
"body": [
"-- Select rows from a Table or View '[${1:TableOrViewName}]' in schema '[${2:dbo}]'",
"SELECT * FROM [${2:dbo}].[${1:TableOrViewName}]",
"WHERE ${3:/* add search conditions here */}",
"GO"
],
"description": "Select rows from a Table or a View"
},
"Insert rows into a Table": {
"prefix": "sqlInsertRows",
"body": [
"-- Insert rows into table '${1:TableName}' in schema '[${2:dbo}]'",
"INSERT INTO [${2:dbo}].[${1:TableName}]",
"( -- Columns to insert data into",
" ${3:[ColumnName1], [ColumnName2], [ColumnName3]}",
")",
"VALUES",
"( -- First row: values for the columns in the list above",
" ${4:ColumnValue1, ColumnValue2, ColumnValue3}",
"),",
"( -- Second row: values for the columns in the list above",
" ${5:ColumnValue1, ColumnValue2, ColumnValue3}",
")",
"-- Add more rows here",
"GO"
],
"description": "Insert rows into a Table"
},
"Delete rows from a Table": {
"prefix": "sqlDeleteRows",
"body": [
"-- Delete rows from table '[${1:TableName}]' in schema '[${2:dbo}]'",
"DELETE FROM [${2:dbo}].[${1:TableName}]",
"WHERE ${3:/* add search conditions here */}",
"GO"
],
"description": "Delete rows from a Table"
},
"Update rows in a Table": {
"prefix": "sqlUpdateRows",
"body": [
"-- Update rows in table '[${1:TableName}]' in schema '[${2:dbo}]'",
"UPDATE [${2:dbo}].[${1:TableName}]",
"SET",
"\t[${3:ColumnName1}] = ${4:ColumnValue1},",
"\t[${5:ColumnName2}] = ${6:ColumnValue2}",
"\t-- Add more columns and values here",
"WHERE ${7:/* add search conditions here */}",
"GO"
],
"description": "Update rows in a Table"
},
"Create a stored procedure": {
"prefix": "sqlCreateStoredProc",
"body": [
"-- Create a new stored procedure called '${1:StoredProcedureName}' in schema '${2:dbo}'",
"-- Drop the stored procedure if it already exists",
"IF EXISTS (",
"SELECT *",
"\tFROM INFORMATION_SCHEMA.ROUTINES",
"WHERE SPECIFIC_SCHEMA = N'${2:dbo}'",
"\tAND SPECIFIC_NAME = N'${1:StoredProcedureName}'",
"\tAND ROUTINE_TYPE = N'PROCEDURE'",
")",
"DROP PROCEDURE ${2:dbo}.${1:StoredProcedureName}",
"GO",
"-- Create the stored procedure in the specified schema",
"CREATE PROCEDURE ${2:dbo}.${1:StoredProcedureName}",
"\t$3@param1 /*parameter name*/ $4int /*datatype_for_param1*/ = 0, /*default_value_for_param1*/",
"\t$5@param2 /*parameter name*/ $6int /*datatype_for_param1*/ = 0 /*default_value_for_param2*/",
"-- add more stored procedure parameters here",
"AS",
"BEGIN",
"\t-- body of the stored procedure",
"\tSELECT @param1, @param2",
"END",
"GO",
"-- example to execute the stored procedure we just created",
"EXECUTE ${2:dbo}.${1:StoredProcedureName} 1 /*value_for_param1*/, 2 /*value_for_param2*/",
"GO"
],
"description": "Create a stored procedure"
},
"Drop a stored procedure": {
"prefix": "sqlDropStoredProc",
"body": [
"-- Drop the stored procedure called '${1:StoredProcedureName}' in schema '${2:dbo}'",
"IF EXISTS (",
"SELECT *",
"\tFROM INFORMATION_SCHEMA.ROUTINES",
"WHERE SPECIFIC_SCHEMA = N'${2:dbo}'",
"\tAND SPECIFIC_NAME = N'${1:StoredProcedureName}'",
")",
"DROP PROCEDURE ${2:dbo}.${1:StoredProcedureName}",
"GO"
],
"description": "Drop a stored procedure"
},
"List tables": {
"prefix": "sqlListTablesAndViews",
"body": [
"-- Get a list of tables and views in the current database",
"SELECT table_catalog [database], table_schema [schema], table_name [name], table_type [type]",
"FROM INFORMATION_SCHEMA.TABLES",
"GO"
],
"description": "List tables and views in the current database"
},
"List databases": {
"prefix": "sqlListDatabases",
"body": [
"-- Get a list of databases",
"SELECT [name] FROM sys.databases",
"GO"
],
"description": "List databases"
},
"List columns": {
"prefix": "sqlListColumns",
"body": [
"-- List columns in all tables whose name is like '${1:TableName}'",
"SELECT ",
"\tTableName = tbl.table_schema + '.' + tbl.table_name, ",
"\tColumnName = col.column_name, ",
"\tColumnDataType = col.data_type",
"FROM INFORMATION_SCHEMA.TABLES tbl",
"INNER JOIN INFORMATION_SCHEMA.COLUMNS col ",
"\tON col.table_name = tbl.table_name",
"\tAND col.table_schema = tbl.table_schema",
"",
"WHERE tbl.table_type = 'base table' and tbl.table_name like '%${1:TableName}%'",
"GO"
],
"description": "Lists all the columns and their types for tables matching a LIKE statement"
},
"Declare a cursor": {
"prefix": "sqlCursor",
"body": [
"-- Declare a cursor for a Table or a View '${1:TableOrViewName}' in schema '${2:dbo}'",
"DECLARE @ColumnName1 NVARCHAR(50), @ColumnName2 NVARCHAR(50)",
"",
"DECLARE db_cursor CURSOR FOR",
"SELECT ColumnName1, Column2",
"FROM $2.$1",
"",
"OPEN db_cursor",
"FETCH NEXT FROM db_cursor INTO @ColumnName1, @ColumnName2",
"",
"WHILE @@FETCH_STATUS = 0",
"BEGIN",
"\t-- add instructions to be executed for every row",
"\t$3",
"\tFETCH NEXT FROM db_cursor INTO @ColumnName1, @ColumnName2",
"END",
"",
"CLOSE db_cursor",
"DEALLOCATE db_cursor",
"GO"
],
"description": "Declare a cursor"
},
"Show space used by tables": {
"prefix": "sqlGetSpaceUsed",
"body": [
"-- Get the space used by table ${1:TableName}",
"SELECT TABL.name AS table_name,",
"INDX.name AS index_name,",
"SUM(PART.rows) AS rows_count,",
"SUM(ALOC.total_pages) AS total_pages,",
"SUM(ALOC.used_pages) AS used_pages,",
"SUM(ALOC.data_pages) AS data_pages,",
"(SUM(ALOC.total_pages)*8/1024) AS total_space_MB,",
"(SUM(ALOC.used_pages)*8/1024) AS used_space_MB,",
"(SUM(ALOC.data_pages)*8/1024) AS data_space_MB",
"FROM sys.tables AS TABL",
"INNER JOIN sys.indexes AS INDX",
"ON TABL.object_id = INDX.object_id",
"INNER JOIN sys.partitions AS PART",
"ON INDX.object_id = PART.object_id",
"AND INDX.index_id = PART.index_id",
"INNER JOIN sys.allocation_units AS ALOC",
"ON PART.partition_id = ALOC.container_id",
"WHERE TABL.name LIKE '%${1:TableName}%'",
"AND INDX.object_id > 255",
"AND INDX.index_id <= 1",
"GROUP BY TABL.name, ",
"INDX.object_id,",
"INDX.index_id,",
"INDX.name",
"ORDER BY Object_Name(INDX.object_id),",
"(SUM(ALOC.total_pages)*8/1024) DESC",
"GO"
],
"description": "Get Space Used by Tables"
},
"Create a new Index": {
"prefix": "sqlCreateIndex",
"body": [
"-- Create a nonclustered index with or without a unique constraint",
"-- Or create a clustered index on table '[${1:TableName}]' in schema '[${2:dbo}]' in database '[${3:DatabaseName}]'",
"CREATE ${5:/*UNIQUE or CLUSTERED*/} INDEX IX_${4:IndexName} ON [${3:DatabaseName}].[${2:dbo}].[${1:TableName}] ([${6:ColumnName1}] DESC) /*Change sort order as needed*/",
"GO"
],
"description": "Create a new Index"
},
"Create a new Temporary Table": {
"prefix": "sqlCreateTempTable",
"body": [
"-- Drop a temporary table called '#${1:TableName}'",
"-- Drop the table if it already exists",
"IF OBJECT_ID('tempDB..#${1:TableName}', 'U') IS NOT NULL",
"DROP TABLE #${1:TableName}",
"GO",
"-- Create the temporary table from a physical table called '${4:TableName}' in schema '${3:dbo}' in database '${2:DatabaseName}'",
"SELECT *",
"INTO #${1:TableName}",
"FROM [${2:DatabaseName}].[${3:[dbo}].[${4:TableName}]",
"WHERE ${5:/* add search conditions here */}"
],
"description": "Create a new Temporary Table"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment