sqlexpert

Interested in Haskell, Idris, Agda, F#, Scala, Clojure

Technical Article

LongestRunningQueries.vbs

This SQL 2005-only VBS script will show the longest-running queries on a given server, complete with graphical .sqlplan when clicked. Results go to a web page, viewed from the local machines's temp directory.Each row of the resulting table has the session ID, the currently running statement of the batch, a link to a text file […]

5 (1)

You rated this post out of 5. Change rating

2007-07-24 (first published: )

371 reads

Technical Article

faster dbo.ufn_vbintohexstr - varbinary to hex

Here's an alternative to Clinton Herring's ufn_vbintohexstr which should be much faster with large varbinary values. First, in his original version, the inner-loop CASE statements can be replaced with this: select @value = @value + CHAR(@vbin/16+48+(@vbin+96)/256*7) +CHAR(@vbin&15+48+((@vbin&15)+6)/16*7) How does it work? By adding 6 to a hex-digit in (@vbin&15), you have a value from 16 […]

You rated this post out of 5. Change rating

2006-12-20 (first published: )

123 reads

Technical Article

BASE64 Encode and Decode in T-SQL - optimized

This is just an optimized version of Daniel Payne's two scripts, base64_encode and base64_decode, with changes to end-of-block handling and a bug fix or two. If the encoded string ends in =, the last character is truncated. If ending in ==, two characters are chopped off. That seems better than replacing NUL characters with spaces, […]

4.8 (5)

You rated this post out of 5. Change rating

2006-12-18 (first published: )

7,640 reads

Technical Article

HexToInt

Challenged by Hans Lindgren's stored procedures of the same name, I created this. Note that it produces strange results on non-hexadecimal strings, overflows at 0x80000000, and could have issues with byte-ordering on some architectures.How does it work? Well, the distance between one after '9' (':') and 'A' is 7 in ASCII. Also, if I subtract […]

You rated this post out of 5. Change rating

2006-12-15 (first published: )

210 reads

Technical Article

HexToSmallInt

Hans asked if it could be faster. This is about 10% faster; not much. His is admittedly more readable, and mine will act very strangely with invalid hex digits.How does it work? I'm converting the string '1234' to the value 0x31323334 (for example), then subtracting '0000' so that it is 0-based in each byte (CONVERT(INT,0x30303030) […]

You rated this post out of 5. Change rating

2005-05-16 (first published: )

142 reads

Blogs

Advice I Like: Fear and Imagination

By

Fear is fueled by a lack of imagination. The antidote to fear is not...

Cloud Data Driven User Group 2025 – Slides & Scripts

By

The slidedeck and the SQL scripts for the session Indexing for Dummies can be...

Leading Through Change: Guiding Teams in Times of Uncertainty

By

Change is not a disruption in technology; it is the rhythm. New frameworks appear,...

Read the latest Blogs

Forums

Building AI Governance and Policies- First Steps

By dbakevlar

Comments posted to this topic are about the item Building AI Governance and Policies-...

Simple delete causes table scan on other tables with foreign key

By askcoffman

Why is sql doing a full scan VS seeking on the index? I've included...

Show/Hide number of rows in table

By marty.seed

We have a report that has multiple tables that list the top 15 performers...

Visit the forum

Question of the Day

Checking Identities

The DBCC CHECKIDENT command is used when working with identity values. I have a table with 10 rows in it that looks like this:

TravelLogID CityID  StartDate   EndDate
1           1       2025-01-11  2025-01-16
2           2       2025-01-11  2025-01-16
3           3       2025-01-11  2025-01-16
4           4       2025-01-11  2025-01-16
5           5       2025-01-11  2025-01-16
6           6       2025-01-11  2025-01-16
7           7       2025-01-11  2025-01-16
8           8       2025-01-11  2025-01-16
9           9       2025-01-11  2025-01-16
10          10      2025-01-11  2025-01-16
The docs for DBCC CHECKIDENT say this if I run with only the table parameter: "If the current identity value for a table is less than the maximum identity value stored in the identity column, it is reset using the maximum value in the identity column. " I run this code:
DELETE dbo.TravelLog WHERE TravelLogID >= 9
GO
DBCC CHECKIDENT(TravelLog, RESEED)
GO
INSERT dbo.TravelLog
(
    CityID,
    StartDate,
    EndDate
)
VALUES
(4, '2025-09-14', '2025-09-17')
GO
What is the identity value for the new row inserted by the insert statement above?

See possible answers