diff --git a/useful-sql-scripts/useful.sql b/useful-sql-scripts/useful.sql deleted file mode 100644 index 1da9f25..0000000 --- a/useful-sql-scripts/useful.sql +++ /dev/null @@ -1,87 +0,0 @@ ------------------------------------------------------- --- 1. Solutions to common issues ------------------------------------------------------- --- Resolving the "Divide by zero" error (by example) -DECLARE @denominator INT -SET @denominator = 0 ---SELECT 1 / 0 -SELECT 1 / ISNULL(NULLIF(@denominator, 0), 1) ------------------------------------------------------- ---Handling the error “The conversion of a char data type to a datetime data ---type resulted in an out-of-range datetime value” ---Change the default language to “us_english” for the given SQL Server login: -USE [master]; -ALTER LOGIN "LOGIN_NAME" WITH DEFAULT_LANGUAGE = us_english; ---Best practice: Always use the ISO date format in your data applications/T-SQL scripts: YYYY-MM-DD ------------------------------------------------------- ---Handling the error “Database [Database_Name] cannot be upgraded because it is read-only ---or has read-only files” ---Make sure that the user account on which the SQL Server instance database engine is ---running has full access to the database files. ------------------------------------------------------- --- 2. Basic String Functions ------------------------------------------------------- --- Returns @length characters from @expression starting from @start_index -SELECT SUBSTRING(@expression, @start_index, @length) -SELECT SUBSTRING('This is a Test', 1, 4) --- Finds the given @pattern in the @string and replaces it with the @replacement_string -SELECT REPLACE(@string, @pattern, @replacement_string) -SELECT REPLACE('This is a Test', 'Test', 'New Test') --- Returns the size of @string in terms of number of characters -SELECT LEN(@string) -SELECT LEN('This is a Test') --- Returns the first @num_chars characters of the @string counting from the left -SELECT LEFT(@string, @num_chars) -SELECT LEFT('This is a Test',4) --- Returns the first @num_chars characters of the @string counting from the right -SELECT RIGHT(@string, @num_chars) -SELECT RIGHT('This is a Test',4) --- Removes the leading blank spaces -SELECT LTRIM(@expression) -SELECT LTRIM(' This is a Test') --- Removes the trailing blank spaces -SELECT RTRIM(@expression) -SELECT RTRIM('This is a Test ') ------------------------------------------------------- --- 3. Performance-Related Tips ------------------------------------------------------- --- Avoiding locking when reading data (however, dirty reads are allowed) --- You need to take into consideration, possible dirty-read issues when using this approach -SELECT [columnName] -FROM [tableName] WITH (NOLOCK) ------------------------------------------------------- --- Rebuild a specific index with using parameters -USE [DATABASE_NAME]; -ALTER INDEX [INDEX_NAME] ON [SCHEMA.TABLE] -REBUILD WITH (FILLFACTOR=[FILL_FACTOR_VALUE_BETWEEN_0_100], ONLINE=[ON|OFF]); --- Rebuild all indexes in a table with using parameters -USE [DATABASE_NAME]; -ALTER INDEX ALL ON [SCHEMA.TABLE] -REBUILD WITH (FILLFACTOR=[FILL_FACTOR_VALUE_BETWEEN_0_100], ONLINE=[ON|OFF]); ------------------------------------------------------- --- Updating database tables without causing blocking --- You need to take into consideration, possible dirty-read issues when using this approach -UPDATE [TABLE_NAME] WITH (READPAST) -SET … -WHERE … ------------------------------------------------------- --- 4. Maintenance-Related Tips ------------------------------------------------------- --- Truncating a data/log file -USE [DBName]; -DBCC SHRINKFILE ([Data_Log_LogicalName],TRUNCATEONLY); --- Renaming a Windows login -ALTER LOGIN "[Domain or Server Name]\[Windows Username]" -WITH NAME="[New Domain or New Server Name]\[Windows Username]"; --- Renaming a SQL Server login -ALTER LOGIN "[SQL Server Login Name]" -WITH NAME="[New SQL Server Login Name]"; --- Creating Logins for orphaned SQL Server users -USE [DBName]; -EXEC sp_change_users_login 'Auto_Fix', '[UserName]', NULL, '[Password]'; --- Changing the Database Owner in a SQL Server Database (SQL Login) -USE [DBName]; -EXEC sp_changedbowner '[SQL_Login_Name]'; --- Changing the Database Owner in a SQL Server Database (Windows Login) -USE [DBName]; -EXEC sp_changedbowner '[DomainNameUserName]'