Formatting changes not recognized

A SQL Server Management Studio add-in to source control your database in Subversion or Team Foundation Server.

Formatting changes not recognized

Postby jed.sutton » Thu Apr 18, 2013 3:55 pm

My project has instituted new SQL Style Guidelines. We use SQL Prompt to format the code per the process. Our process going forward when modifying DB objects is:
  1. Open DB object
  2. Reformat the object using SQL Prompt
  3. Commit to SVN using SQL Source Control to capture baseline for new format
  4. Make modifications
  5. Commit to SVN using SQL Source Control

The problem is that, in step 3, SQL Source Control doesn't recognize changes in format only. It can't simply be a whitespace issue because some keywords change case or things are rearranged on different lines. I can't find any settings to control this behavior.

Does anyone have any ideas?
Posts: 1
Joined: Thu Apr 18, 2013 3:43 pm

Postby james.billings » Mon Apr 22, 2013 1:05 pm

Thanks for your post.

If the only differences are whitespace and/or casing, then SQL Source Control most likely won't pick this up. We only detect casing differences if the SQL Server is set to be case sensitive. Unfortunately there's no way to override this behaviour (but do please vote for the suggestion on our Uservoice page for SQL Source Control.

If you make some kind of syntactic change then we should pick up the difference; and I believe the fresh commit should then use the new formatting.
Posts: 1122
Joined: Wed Jun 16, 2010 10:10 am
Location: Red Gate

Postby freecell1 » Wed May 08, 2013 2:45 pm

We are having a similar problem with case and our SQL Server is indeed set to case insensitive collation (SQL_Latin1_General_CP1_CI_AS).

This is the SQL Server default. You can check it by:

SELECT name, collation_name
FROM sys.databases
WHERE name = 'mydatabase'

It would be nice if there were a workaround. We recently had an effort where we changed the strings on our client's site to be mixed case (they are stored in the db). We have spent a number of days trying to deal with the inability to actually cause changes to be rolled out to other machines via SSC.

The funny thing is that in the script files in subversion, the casing is correct. That is, I can change the case locally and also another field like a datestamp and SSC will take the commit. However when another developer gets latest, it gives them the updated date but not the updated string.

There must be a fix for this ... it's also confusing because the comparison pane on the commit changes screen shows the strings as different (i.e. it's showing a case sensitive comparison).

Is it a bug perhaps?
Posts: 25
Joined: Tue Mar 13, 2012 7:21 pm

Return to SQL Source Control Previous Versions

Who is online

Users browsing this forum: No registered users and 0 guests