Cade Bryant


Technical Article

View all settings for all databases on your server

My stored procedure, sp_dbsettings, allows you to view, in a cross-tabular format, all the common options and their values for all the databases on your server.  Optionally, you can pass a database name as an argument if you just want to view the settings for one database (i.e., EXEC sp_dbsettings 'Northwind').  Otherwise it shows info […]

You rated this post out of 5. Change rating

2002-10-09

649 reads

Technical Article

Find the Nth Occurrence of a Character in a String

T-SQL's CHARINDEX() function is a useful for parsing out characters within a string.  However, it only returns the first occurrence of a character.  Oftentimes one needs to locate the Nth instance of a character or a space, which can be a complicated task in standard T-SQL.  This function I wrote, imaginatively named CHARINDEX2(), allows one […]

(11)

You rated this post out of 5. Change rating

2002-09-27

32,439 reads

Technical Article

Stored procedure sp_for

The sp_for procedure provides simple single-statement loop processing for T-SQL statements, similar to the FOR command in the C language or the DOS command-line utility by the same name.It's syntax is similar to that of the DOS command.  It takes an argument to represent a variable, initialize the variable, set an increment, set an end […]

You rated this post out of 5. Change rating

2002-09-13

907 reads

Technical Article

FASTCOUNT() User-Defined Function (SQL 2000 only)

SQL Server's COUNT() function is a slow and expensive way to count a table's rows because it scans the entire table or index.  FASTCOUNT(), which I created, is much more efficient for this purpose - its only drawback being that it may return inaccurate results if a nonlogged (e.g., bulk) data modification operation was recently […]

You rated this post out of 5. Change rating

2002-09-10

858 reads

Technical Article

Using UDFs to avoid cursors

Let's say you have 2 tables: a Contacts table and a PhoneNumbers table (which stores all the phone numbers for each contact).  You are asked to write a query that returns each contact's name and a comma-delimited string of phone numbers for each contact, something like this:FirstName    LastName   PhoneNumbers---------    --------   --------------------------John      […]

You rated this post out of 5. Change rating

2002-07-22

1,035 reads

Technical Article

Preventing accidental overwrites with update SPs

Say you wanted to create an SP for updating records in a database.  How would you do this in such a way as to allow your users to edit only a subset of fields in the record, without overwriting the other fields, and without requiring verbose IF blocks and CASE statements in your code?Simple.  Use […]

You rated this post out of 5. Change rating

2002-04-16

211 reads

Blogs

TempDB Internals – What’s New (Sql Server 2016 to 2025)

By

I wrote about TempDB Internals and understand that Tempdb plays very important role on...

Blog a Day – Day 2: Generative AI, Multimodal Systems, and Agent AI

By

continuing from Day 1 where we covered the history of AI and GPT family,...

A Wellbeing Day at Redgate

By

It’s a day off for Redgate today. This is our annual wellbeing day, where...

Read the latest Blogs

Forums

A Quick Restore

By Steve Jones - SSC Editor

Comments posted to this topic are about the item A Quick Restore

Guarding Against SQL Injection at the Database Layer (SQL Server)

By Terry Jago

Comments posted to this topic are about the item Guarding Against SQL Injection at...

Ola Hallengren Index Optimize Maintenance can we have data compression = page

By JSB_89

I have a quick question on Ola Hallengren Index Optimize Maintenance . Do we...

Visit the forum

Question of the Day

A Quick Restore

While doing some testing of an application, I wanted to reset my environment after doing some testing with this code:

USE DNRTest

BACKUP DATABASE DNRTest TO DISK = 'dnrtest.bak'
GO
/*
Bunch of stuff tested here
*/RESTORE DATABASE DNRTest FROM DISK = 'dnrtest.bak' WITH REPLACE
What happens if this runs, assuming the "bunch of stuff" isn't anything affecting the instance.

See possible answers