SqlCodeGuard.2.6
Aug 13, 2014

[+] sql2014 added to supported sql versions

[*] linked with SIPF 1.0.3.4

[*] added replacements for deprecated system objects

[*] [CGUNP] can be now excluded from issues in msbuild

[+] added TreatWarningsAsErrors option for msbuild

[+] added TreatIssueAsError property for msbuild

[+] added TreatIssueAsWarning propert for msbuild

[+] added [ST013] Non-ANSI NOT_EQUAL operator used (!=)

[*] added bunch of try/catch with log

[+] added exclusion list for [MI001] Table variable is declared but never used

[+] added exclusion list for [MI002] Temporary table is declared but never used

[+] added support message if not all issues copied

[*] added wait cursor for GUI

[*] reset focused item in LV to top after reprocessing

[*] changed order of line/column attributes in produced xml

[*] changed MI005 "Variable declared but never used" and MI006 "Parameter is declared but never used" : now assignments does not counts as usage; variable should be used in expression or as stored procedure parameters

[*] fixed error when SSMS crashes when processing SQL2014 database

[*] fixed issues when only script-based issues were copied

[*] fixed issues when GO was parsed as identifier/alias instead of batch separator

[*] fixed several issues with copying issues to clipboard/new window

[*] (partially) fixed unparsed on CREATE INDEX WITH DATA_COMPRESSION

[*] fixed issues when not all issues were copied to new window/file

[*] fixed unparsed GRANT EXECUTE ON [dbo].[someSP] TO [someuser] AS [dbo]

[*] [MI002] Temp table is declared but never used: insert into temporary table does not counts as usage, only reference in select/update/delete/truncate statement

[*] [MI001] "Table var is declared but never used": now insert into tablevar does not counts as usage;tablevar should be referenced in select/update/delete statement

SqlCodeGuard.2.5.5257
May 24, 2014

[+] added digital sign

[*] added metadata info for ecosystem registration

[+] added new menu "Settings"

[+] added ability to change settings like BP017AllowedTables and so on

[*] linked with SIPF 1.0.2


[*] fixed xtra MI003 on system functions like CURRENT_USER

[*] fixed issue when info label not hidden after complexity analyze

[*] fixed xtra PE009 on UDF

[*] fixed xtra st012 on UDF

[*] fixed unparsed with backward compatibility index options

[*] INSERTED/DELETE and system procedures now not reported as missing from metabase in triggers


[*] changed order of attributes in result file for msbuild

[*] changed sort order in issue list

[*] few informational messages added

[*] in EI025 now printed procedure name

[*] added informational text for cancelling

[*] added "no error found" message after analyze

[*] added few descriptive headers for issues

SqlCodeGuard.2.4.5222
Apr 19, 2014

[+] added TFS Checkin Policy

[+] added Visual Studio 2012 addin

[+] added SQLCodeGuardSettingsEditor - editor for settings files

[*] SQL Code Guard API Extended and improved

[*] added Quiet option to msbuild project


[+] added ST009 "Avoid using GOTO to improve readability"

[*] added skip-list for ST009 Avoid using GOTO to improve readability

[+] added ST010 "Use alias for all table sources"

[+] added ST011 Consider using table variable instead of temporary table + ST011AllowedTables

[+] added ST012 Consider using temporary table instead of table variable + ST012AllowedTables

[+] added PE019 "Consider using [NOT] EXISTS instead of [NOT] IN (subquery)"

[+] added EI028 "Adding NOT NULL column without default value"

[+] added EI029 Avoid using ISNUMERIC() function because it accepts int, numeric, float and money numbers

[+] added BP017 DELETE statement without WHERE clause + BP017AllowedTables

[+] added BP018 UPDATE statement without WHERE clause + BP018AllowedTables

[+] added SC001 Script should end with GO/p>

[+] added SC002 Script should end with empty line/p>

[+] added SC003 There should be no USE statement in batch

[*] added ability to append miltiple DEPxxx issues to the same statement


[*] fixed unparsed WITH XMLNAMESPACES

[*] fixed unparsed with TSEQUAL function

[*] fixed unparsed with odbc convert functions {t d ts guid}

[*] fixed unparsed with DEFAULT as default value for procedure param

[*] fixed unparsed on ALTER AUTHORIZATION

[*] fixed unparsed with CREATE FULLTEXT STOPLIST

[*] fixed unparsed CREATE PRIMARY XML INDEX

[*] fixed unparsed with DROP INDEX

[*] fixed unparsed with CREATE/ALTER EVENT SESSION

[*] fixed unparsed with SEND ON CONVERSATION

[*] fixed unparsed with select * from ::SYSTEMFUNCTION()

[*] fixed tokenization problem with <_LABEL> + fixed unparsed when label comes right after table name in select * from table1 label1:

[*] fixed issue when synonym is not resolved to database object


[*] added support for method call in case of select (blah-blah-blah as xml).nodes() or (expression).nodes()

[*] solved problem with label (FINISH:) and CLR method call(Type::Method) intersection

[*] DEP013 now prints setting on which it were catched

[*] changed the way of how settings file is determined

[*] installation changed to "for all users"

[*] upgraded to newer Ecosystem framework

[*] changed order of attributes in "copy issues" xml

[+] added few labels with instructions

[*] MI005/MI006 - case of variable name preserved


[*] fixed ST008 is not registered in scripts

[*] fixed extra MI006 on xml variables/parameters when xml variable used only with xml method

[*] fixed xtra MI003 on COLLATE


[*] fixed error with XML escaping

[*] fixed error with no-connection and dependencies


[*] fixed MSBuild fails when Outfile is empty

[*] "Version" label converted to text box to allow copy

[*] removed auto set focus on Outline window select


SqlCodeGuard.2.3.5150
Feb 06, 2014

[+] SqlCodeGuard now part of Red-Gate Ecosystem

[+] added early-beta support for msbuild, please look at SampleProject.msbuild in SqlCodeGuard folder

[+] added license file

[*] fixed several CGUNP with MERGE statement

[+] added new issues MI006 "Parameter is declared but never used"

[*] minor refactoring/changes/fixes

[-] removed TBLxxx issues

[*] fixed issue when check incorrectly determines type of object being checked while running analyze from query window

SqlCodeGuard.2.1.4804
Feb 25, 2013

[*] fixed incorrect line offset in error list

[*] fixed error with XML.modify and xtra MI005 error

[*] some cosmetic changes

[+] added API.GetComplexity() method

[+] added "Category" field to API.IssueInfo class

SqlCodeGuard.2.1.4692
Nov 5, 2012

[+] added support for SSMS2012

SqlCodeGuard.2.1.4664
Oct 8, 2012

[*] added bunch of keywords to identifier list - should minimize UNPARSED

SqlCodeGuard.2.1.4656
Sep 30, 2012

[*] fixed some unparsed

[+] added "Dump dependencies"

[*] fixed error with xtra "Not found in metabase" nodes

[*] some GUI improvements

[+] added "Dump unparsed objects" context menu to issues window;

SqlCodeGuard.2.1.4642
Sep 17, 2012

[*] improved performance and reduced memory usage on large amount of ssues

[*] some GUI improvements

[*] Fixed error "Class not registered" when installing under Admin account and run under regular user/install for all users

[+] added "Dump issues to file"

SqlCodeGuard.2.1.4634
Sep 9, 2012

[*] "Select issues" window made resizable

[*] Fixed cutting of issues description in "Select issues" dialog

[+] Added "Dump issues summary"/"Dump issues" to Issue Window context menu

[+] Added SqlCodeGuardAPI.API.IssueList property to enumerate all defined issues

SqlCodeGuard.2.1.4628
Sep 3, 2012

[+] added USE {DBNAME} and "ALTER" on view object definition

[+] added "isssue groups" to "Select issue window"

[+] added API to use in own build process/tools/so on

[+] added sample app for API usage

[*] changed default set of issues - all issues except [DEP023] Not ending Transact-SQL statements with a semicolon is deprecated

SqlCodeGuard.2.1.4621
Aug 27, 2012

[+] added ability to copy issue text/message to clipboard (popup menu, ctrl+ins)

[*] added explanation for issue - BP004 "It is recommended to specify column list explicitly.Table variables are not checked"

[*] fixed - integration with localized SSMS now works

[+] added new issue- ST008 "Non-named parameter style used" for procedure call when non-named parameters used

[*] fixed GUI: selected issue line keeps selection when issue window loses focus

[*] fixed unwanted BP005 "Asterisk in select list"

WITH CTE
as
(
select * from sys.objects
)
select name from CTE
go
select a.name
from sys.tables a cross apply (select top(1) * from sys.columns ) b
go
select name from (select * from sys.tables)s
go
[*] fixed unwanted DEP026 "Three-part and four-part column references in SELECT list are deprecated."
declare
@backp_log_job_name sysname = ( select x.name from msdb.dbo.sysjobs_view x )
go
[+] added : system objects ignored
SELECT object_name(major_id)
FROM sys.extended_properties
WHERE name = 'microsoft_database_tools_support'
[*] fixed unparsed & added new issue DEP028 "This RAISERROR syntax is deprecated"
declare @msg int raiserror 50001 @msg
[*] fixed unparsed
create function TTT(@val datetime)
RETURNS DateTime WITH SCHEMABINDING, RETURNS NULL ON NULL INPUT AS BEGIN RETURN
@val
end

SqlCodeGuard.2.1.4612
Aug 22, 2012

First public release