Initial commit

This commit is contained in:
2023-11-30 11:16:59 -05:00
parent 96264fd01c
commit c33b383d3b
13 changed files with 237 additions and 47 deletions

View File

@@ -0,0 +1,30 @@
DECLARE @name VARCHAR(50) -- Database name
DECLARE @path VARCHAR(256) -- Path for backup files
DECLARE @fileName VARCHAR(256) -- Filename for backup
DECLARE @fileDate VARCHAR(20) -- Used for file name
-- Specify database backup directory
SET @path = 'D:\MyBackupFolder\'
exec master.dbo.xp_create_subdir @path
-- Specify the filename format
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)
DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name IN ('MyDatabase1','MyDatabase2','MyDatabase3', 'MyDatabase4') -- Add the names of all database you want to backup
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name
WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName
FETCH NEXT FROM db_cursor INTO @name
END
CLOSE db_cursor
DEALLOCATE db_cursor

View File

@@ -0,0 +1,30 @@
SELECT
t.name AS TableName,
--s.name AS SchemaName,
p.rows As TotalRows,
--SUM(a.total_pages) * 8 AS TotalSpaceKB,
--CAST(ROUND(((SUM(a.total_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS TotalSpaceMB,
CAST(ROUND((((SUM(a.total_pages) * 8) / 1024.00) / 1024.0), 3) AS NUMERIC(36, 2)) AS TotalSpaceGB
--SUM(a.used_pages) * 8 AS UsedSpaceKB,
--CAST(ROUND(((SUM(a.used_pages) * 8) / 1024.00), 2) AS NUMERIC(36, 2)) AS UsedSpaceMB,
--CAST(ROUND((((SUM(a.used_pages) * 8) / 1024.00) / 1024.0), 3) AS NUMERIC(36, 2)) AS UsedSpaceGB,
--(SUM(a.total_pages) - SUM(a.used_pages)) * 8 AS UnusedSpaceKB,
--CAST(ROUND(((SUM(a.total_pages) - SUM(a.used_pages)) * 8) / 1024.00, 2) AS NUMERIC(36, 2)) AS UnusedSpaceMB
FROM
sys.tables t
INNER JOIN
sys.indexes i ON t.object_id = i.object_id
INNER JOIN
sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id
INNER JOIN
sys.allocation_units a ON p.partition_id = a.container_id
LEFT OUTER JOIN
sys.schemas s ON t.schema_id = s.schema_id
WHERE
t.name NOT LIKE 'dt%'
AND t.is_ms_shipped = 0
AND i.object_id > 255
GROUP BY
t.name, s.name, p.rows
ORDER BY
TotalSpaceGB DESC, t.name

View File

@@ -0,0 +1,20 @@
--Select all rows/columns from a TABLE
SELECT * FROM myTable
--Select top 10 rows from a TABLE
SELECT TOP(10) * FROM myTable
--Select specific columns from a TABLE
SELECT Id, FirstName, LastName FROM myTable
--Select all rows matching the last name Smith
SELECT * FROM myTable WHERE LastName = 'Smith'
--Select all rows in ascending/descending ORDER
SELECT * FROM myTable ORDER BY CreateDate --ascending
SELECT * FROM myTable ORDER BY CreateDate DESC --descending
--Select matching records from 2 tables
SELECT * FROM table1 t1
JOIN table2 t2 ON t1.Id = t2.Id

View File

@@ -0,0 +1,21 @@
--Declare any variables needed for the cursor query
DECLARE @id uniqueidentifier
DECLARE @name varchar(max)
DECLARE db_cursor CURSOR FOR
--SELECT Id, Name FROM Table WHERE Field = value
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @id
WHILE @@FETCH_STATUS = 0
BEGIN
--Select/update/delete statements go here
FETCH NEXT FROM db_cursor INTO @id
END
CLOSE db_cursor
DEALLOCATE db_cursor

View File

@@ -0,0 +1,39 @@
SELECT PKTABLE_QUALIFIER = CONVERT(SYSNAME,DB_NAME()),
PKTABLE_OWNER = CONVERT(SYSNAME,SCHEMA_NAME(O1.SCHEMA_ID)),
PKTABLE_NAME = CONVERT(SYSNAME,O1.NAME),
PKCOLUMN_NAME = CONVERT(SYSNAME,C1.NAME),
FKTABLE_QUALIFIER = CONVERT(SYSNAME,DB_NAME()),
FKTABLE_OWNER = CONVERT(SYSNAME,SCHEMA_NAME(O2.SCHEMA_ID)),
FKTABLE_NAME = CONVERT(SYSNAME,O2.NAME),
FKCOLUMN_NAME = CONVERT(SYSNAME,C2.NAME),
-- Force the column to be non-nullable (see SQL BU 325751)
--KEY_SEQ = isnull(convert(smallint,k.constraint_column_id), sysconv(smallint,0)),
UPDATE_RULE = CONVERT(SMALLINT,CASE OBJECTPROPERTY(F.OBJECT_ID,'CnstIsUpdateCascade')
WHEN 1 THEN 0
ELSE 1
END),
DELETE_RULE = CONVERT(SMALLINT,CASE OBJECTPROPERTY(F.OBJECT_ID,'CnstIsDeleteCascade')
WHEN 1 THEN 0
ELSE 1
END),
FK_NAME = CONVERT(SYSNAME,OBJECT_NAME(F.OBJECT_ID)),
PK_NAME = CONVERT(SYSNAME,I.NAME),
DEFERRABILITY = CONVERT(SMALLINT,7) -- SQL_NOT_DEFERRABLE
FROM SYS.ALL_OBJECTS O1,
SYS.ALL_OBJECTS O2,
SYS.ALL_COLUMNS C1,
SYS.ALL_COLUMNS C2,
SYS.FOREIGN_KEYS F
INNER JOIN SYS.FOREIGN_KEY_COLUMNS K
ON (K.CONSTRAINT_OBJECT_ID = F.OBJECT_ID)
INNER JOIN SYS.INDEXES I
ON (F.REFERENCED_OBJECT_ID = I.OBJECT_ID
AND F.KEY_INDEX_ID = I.INDEX_ID)
WHERE O1.OBJECT_ID = F.REFERENCED_OBJECT_ID
AND O2.OBJECT_ID = F.PARENT_OBJECT_ID
AND C1.OBJECT_ID = F.REFERENCED_OBJECT_ID
AND C2.OBJECT_ID = F.PARENT_OBJECT_ID
AND C1.COLUMN_ID = K.REFERENCED_COLUMN_ID
AND C2.COLUMN_ID = K.PARENT_COLUMN_ID
ORDER BY FKTABLE_NAME, PKTABLE_NAME

View File

@@ -0,0 +1,3 @@
SELECT table_name [Table Name], column_name [Column Name], DATA_TYPE
FROM information_schema.columns WHERE DATA_TYPE = 'varbinary'
ORDER BY [Table Name]

View File

@@ -0,0 +1,16 @@
SELECT *
FROM (SELECT * FROM myTable) AS T1
JOIN (select myDataColumn, CAST(kilobytes / 1024.0 as numeric(36,2)) as Megabytes
from (
select *, bytes / 1024.0 as kilobytes
from (
select *, datalength(PDF) as bytes
from myTable
) a
) b
) AS T2
ON T1.ID = T2.VersionID
ORDER BY Megabytes desc

View File

@@ -0,0 +1,23 @@
USE [MY_DATABASE_NAME]
SELECT
sh.name+'.'+o.name AS ObjectName,
s.name as ColumnName
,CASE
WHEN t.name IN ('char','varchar') THEN t.name+'('+CASE WHEN s.max_length<0 then 'MAX' ELSE CONVERT(varchar(10),s.max_length) END+')'
WHEN t.name IN ('nvarchar','nchar') THEN t.name+'('+CASE WHEN s.max_length<0 then 'MAX' ELSE CONVERT(varchar(10),s.max_length/2) END+')'
WHEN t.name IN ('numeric') THEN t.name+'('+CONVERT(varchar(10),s.precision)+','+CONVERT(varchar(10),s.scale)+')'
ELSE t.name
END AS DataType
,CASE
WHEN s.is_nullable=1 THEN 'NULL'
ELSE 'NOT NULL'
END AS Nullable
FROM sys.columns s
INNER JOIN sys.types t ON s.system_type_id=t.user_type_id and t.is_user_defined=0
INNER JOIN sys.objects o ON s.object_id=o.object_id
INNER JOIN sys.schemas sh on o.schema_id=sh.schema_id
WHERE O.name IN
(select table_name from information_schema.tables)
ORDER BY sh.name+'.'+o.name,s.column_id

View File

@@ -0,0 +1,67 @@
DECLARE @SearchStr nvarchar(100)
SET @SearchStr = '## YOUR STRING HERE ##'
-- Copyright © 2002 Narayana Vyas Kondreddi. All rights reserved.
-- Purpose: To search all columns of all tables for a given search string
-- Written by: Narayana Vyas Kondreddi
-- Site: http://vyaskn.tripod.com
-- Updated and tested by Tim Gaunt
-- http://www.thesitedoctor.co.uk
-- http://blogs.thesitedoctor.co.uk/tim/2010/02/19/Search+Every+Table+And+Field+In+A+SQL+Server+Database+Updated.aspx
-- Tested on: SQL Server 7.0, SQL Server 2000, SQL Server 2005 and SQL Server 2010
-- Date modified: 03rd March 2011 19:00 GMT
CREATE TABLE #Results (ColumnName nvarchar(370), ColumnValue nvarchar(3630))
SET NOCOUNT ON
DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')
WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ''
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'
AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
AND OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
), 'IsMSShipped'
) = 0
)
WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = PARSENAME(@TableName, 2)
AND TABLE_NAME = PARSENAME(@TableName, 1)
AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar', 'int', 'decimal')
AND QUOTENAME(COLUMN_NAME) > @ColumnName
)
IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO #Results
EXEC
(
'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) FROM ' + @TableName + ' (NOLOCK) ' +
' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
)
END
END
END
SELECT ColumnName, ColumnValue FROM #Results
DROP TABLE #Results

View File

@@ -0,0 +1,21 @@
DECLARE @logName as nvarchar(50)
DECLARE @databaseID as int
DECLARE db_cursor CURSOR FOR
SELECT TOP 10 name,database_id -- only 10 but you can choose any number
FROM sys.master_Files WHERE physical_name like '%.ldf'
--and physical_name not like 'C:\%' -- specify your database paths
and name not in ('mastlog','MSDBLog','templog','modellog','_LogFiles_log','MSDBLog') -- any database logs that you would like to exclude
ORDER BY size DESC
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @logName , @databaseID
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @databaseName as nvarchar(50)
SET @databaseName = DB_NAME(@databaseID)
DECLARE @tsql nvarchar(300)
SET @tsql='USE ['+@databaseName+'] ALTER DATABASE ['+@databaseName+'] set recovery simple DBCC SHRINKFILE ('+@logName+' , 1)'
EXEC(@tsql)
FETCH NEXT FROM db_cursor INTO @logName , @databaseID
END
CLOSE db_cursor
DEALLOCATE db_cursor