Mladen Prajdić Blog

Blog about stuff and things and stuff. Mostly about SQL server and .Net

SQL Server: Notify client of progress in a long running process

In long running scripts it's usefull to notify the client of the progress. Here's a simple solution.  Let's create a simple "long running" script: -- this will return all 3 results to the client after 20 seconds (full execution time) SELECT 1 WAITFOR DELAY '00:00:10' SELECT 2 WAITFOR DELAY '00:00:10' SELECT 3  But what if you want to notify the client when each select happened? Read more →

.Net: Passing user data with Exception back to the caller method

We're all familiar (i hope :)) with this construct: try { // ... some code here ... } catch (Exception ex) { // one of these 2 lines are usually seen throw; // presereves the full call stack //throw ex; // changes the origin of exception to this method } finally { // more stuff here }  It's a standard error catching routine in . Read more →

Exchange: Accept and Cancel Meeting Request with WebDav

In a lengthy article about WebDAV i've written a long while ago I've explained how and what WebDAV is and what are the problems you might encounter. Suggesting by the comments (over 200) it's a pretty popular topic but there's no help on the net for anything more complex than simple operations because Read more →

SQL Server 2005: TableDiff.exe GUI

Some time ago i've written about the TableDiff.exe utility. It's a great tool for quick table comparisons and i've grown tired of typing it in the command line. That's why I created this simple TableDiff GUI to help me along and i've decided to share it with the world. Read more →

A few maximum limitations for SQL Server 2005

Every now and then i see a question pop up that asks what is the max this or that in sql server? Well here are some maximum values: Bytes per short string column8,000Bytes per GROUP BY, ORDER BY8,060Columns in GROUP BY, ORDER BYLimited only by number of bytesBytes per index key900Bytes per foreign key900Bytes per primary key900Bytes per row8,060Bytes per varchar(max), varbinary(max), xml, text, or image column2^31-1Characters per ntext or nvarchar(max) column2^30-1Clustered indexes per table1Columns per index key16Columns per foreign key16Columns per primary key16Columns per base table1,024Columns per SELECT statement4,096Columns per INSERT statement1,024Connections per client32,767Database size1,048,516 terabytes Databases per instance of SQL Server32,767Filegroups per database32,767Files per database32,767File size (data)16 terabytesFile size (log)2 terabytesForeign key table references per table253Identifier length (in characters)128Instances per computer50 (Workgroup Edition only 16)Locks per connectionMaximum locks per serverLocks per instance of SQL ServerUp to 2,147,483,647Nested stored procedure levels32Nested subqueries32Nested trigger levels32Nonclustered indexes per table249Parameters per stored procedure2,100Parameters per user-defined function2,100REFERENCES per table253Rows per tableLimited by available storageTables per databaseLimited by number of objects in a databasePartitions per partitioned table or index1,000Statistics on non-indexed columns2,000Tables per SELECT statement256Triggers per tableLimited by number of objects in a databaseUNIQUE indexes or constraints per table249 nonclustered and 1 clusteredUser connections32,767XML indexes249 Read more →