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