SqlCodeGuard Changelog

What's new in SqlCodeGuard 2.9

Feb 27, 2017
  • fixed unparsed with CONTAINS condition
  • fixed xtra "ST010 Use alias for all table sources" for UPDATE/DELETE statements with single FROM clause item
  • fixed xtra MI003 "Unqualified column name" on DATENAME(MONTH, GETDATE())
  • added --# scgignore(all) support
  • fixed unparsed on EXECUTE AS USER = @login_name
  • added "ref bool process" parameter for OnModuleProcessing delegate to make possibe to skip analyse for certain objects
  • added MI008 "Statement used" +MI008Statement list to the API
  • fixed unparsed on WITH XMLNAMESPACES
  • fixed xtra PE017 "Incorrect usage of const UDF" inside single statement/inline UDFs
  • fixed unparsed on GRANT/REVOKE SECURABLE::
  • fixed CGUNP on SET DATEFIRST|DATEFORMAT|LANGUAGE @Value
  • added ability to exclude folder from msbuild analyse
  • fixed incorrect binding of MI008 to MI007
  • fixed xtra EI028 in case with named default constraint
  • fixed error with IncludeIssues method when issues were not actually marked as Warning except ALL issue
  • fixed extra MI003 Unqualified column name on xml methods
  • fixed several CGUNP on CREATE/ALTER database (rarely used/new options)

New in SqlCodeGuard 2.8 (May 5, 2015)

  • fixed extra MI005 when variable used as EXEC @spname
  • fixed unparsed on FOR XML ROOT without parameters
  • fixed error while loading non-clustered indexes from SQL2014
  • fixed error when @VAR in SET CONTEXT was not resolved as variable
  • Regression: switched back to .Net framework 3.0 to support integration with SQL2008R2
  • added additional exception logging and handling

New in SqlCodeGuard 2.7 (Feb 18, 2015)

  • moved to .Net Framework 4.0
  • added command line utility
  • added draft support for preprocessor command scgignore - to ignore specifis issues in file
  • added scgallow(issue)/scgignore(issue`)to control which issues should be registered
  • added support for VS2013
  • added support for sqlcmd comman syntax :
  • added [SC004] Found todo item. You can use "--# todo ", "--# bug ", "--# fix " or "--# warning " marks in your scripts.
  • added [MI007] WAIT FOR DELAY/TIME used"
  • added readme.txt for TfsCheckinPolicy
  • fixed issues when hierarchyid methods were processed like usual functions/fields
  • fixed unparsed with BEGIN TRY/BEGIN CATCH
  • msbuild: SourcePath now can point to a file, not only a folder
  • msbuild: files now sorted before processing
  • minor changes in error reporting
  • API slightly refactored
  • CASE WHEN NULL THEN ... END now triggers [BP011] NULL comparison or addition/substring
  • fixed xtra [MI006] "Parameter is declared but never used" on OUT parameters

New in SqlCodeGuard 2.6 (Aug 19, 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

New in SqlCodeGuard 2.5.5257 (May 26, 2014)

  • added digital sign
  • added metadata info for ecosystem regisration
  • 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 hided 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

New in SqlCodeGuard 2.4.5222 (Apr 21, 2014)

  • added TFS Checkin Policy
  • added Visual Studion 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 + 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 where catched
  • changed the way of how settings file is determined
  • installation change 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

New in SqlCodeGuard 2.3.5150 (Feb 12, 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

New in SqlCodeGuard 2.1.4804.31310 (Feb 26, 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

New in SqlCodeGuard 2.1.4692.25485 (Jan 25, 2013)

  • added support for SSMS2012

New in SqlCodeGuard 2.1.4664 (Jan 25, 2013)

  • added bunch of keywords to identifier list - should minimize UNPARSED

New in SqlCodeGuard 2.1.4656 (Jan 25, 2013)

  • 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;

New in SqlCodeGuard 2.1.4642 (Jan 25, 2013)

  • improved performance and reduced memory usage on large amount of issues
  • 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"

New in SqlCodeGuard 2.1.4634.42678 (Sep 13, 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

New in SqlCodeGuard 2.1.4628.36115 (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

New in SqlCodeGuard 2.1.4621.42264 (Aug 31, 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