Error and Warning Groups
One of the things we did at the end of the product cycle, when we decided that we need to allow you to filter out warnings, is to clean up all error and warning messages and concisely group them in to specific buckets. Understanding these buckets will go a long way helping you interpret the cause of the warnings and errors.
Error & Warning Message Grouping
- TSD1xxx – Phase 1 parsing / interpretation
- TSD2xxx – Phase 2 parsing
- TSD3xxx – Phase 2 interpretation
- TSD4xxx – SQL Execution / Compile Validation
- TSD5xxx – Reserved for future release
- TSD6xxx – Reserved for future release
- TSD7xxx – Project system
- TSD8xxx – Build
- TSD9xxx – Document based (non-persistent)
Lets look at some of the categories and some examples:
TSD1xxx – Warning Messages
- TSD1002 – File contains more than one DDL definition
- The .sql file contains more than one data definition language (DDL) statement. Remove any additional statements, and retry the operation.
- TSD1026 – Batch Parser Error
- TSD1030 - Phase1 Parsing Failed
- Unable to identify the schema type contained in the .sql file. A schema type of ‘{0}’ was expected, based on the name of the .sql file.
TSD2xxx – Warning Messages
Phase 2 parsing errors, are always syntax related!
- TSD2001 – TSD2038
- Wrong syntax in the file
- TSD20xx where xx = the parser error code
TSD3xxx – Warning Messages
- TSD3006 – Ambiguous Relationship
The relationship from {referencing object} cannot be resolved between the following possible identifiers: {list of options}
Example:
CREATE TABLE t1 (int c1, int c2)
CREATE TABLE t2 (int c1, int c2)
CREATE VIEW v1 AS SELECT c1 FROM t1,t2
- TSD3007 – Invalid Supporting Statement
Invalid supporting statement for {identifier}: {text}
Example:
CREATE TABLE t1(c1 int);
go
kkkk
- TSD3008 – Main Batch Has Top Level DML Statement
The main batch can not have a top level data manipulation language (DML) statement. Please remove that statement and retry the operation
Example:
CREATE TABLE T1(c1 int);
INSERT INTO t1 VALUES(10);
- TSD3009 – Create Assembly From Non Binary
CREATE ASSEMBLY statement can only have binary elements in its FROM clause.
Example:
CREATE ASSEMBLY [Assembly1] FROM N'C:\MyAssemblies\SQLCLR.DLL' WITH PERMISSION_SET = SAFE;
- TSD3010 – No Valid DDL Found
Unable to find a valid schema object identifier in the file. Check the syntax of the DDL statement or make sure the file is not empty
Example:
CREATE ASSEMBLY
- TSD3011 – Dangling Compile Time Dependency Missing
- The following dependencies of {referencing object id} are missing from your database project: {list}. You will not be able to deploy the project
- TSD3012 – Dangling Runtime Dependency Missing
The following dependencies are missing from your database project: {list}. Your database application might fail at runtime when {referencing object id} is executed
Example:
CREATE PROCEDURE proc1
AS
SELECT * FROM RandomTable;
RETURN 0;
- TSD3014 – Constraints In Alter Table Must Have Name
Constraints defined in an 'ALTER TABLE' or 'CREATE TABLE' -statement must have a name.
Example:
ALTER TABLE [dbo].[Table1] ADD CONSTRAINT PRIMARY KEY (c1)
- TSD3018 – Incomplete Drop Statistics Statement
The DROP STATISTICS statement requires [schema_name.]table_name.statistics_name
Example:
DROP STATISTICS s1
- TSD3020 – Database Name Is Invalid
- The database name is invalid. You must use the substitute value [$(databasename)].
- TSD3021 – External Server Dangling Compile Time Dependency Missing
The following cross-server dependencies of {referencing object} could not be verified: {list}. You might not be able to deploy the project
Example:
CREATE VIEW v1 AS
SELECT * FROM aaa.zzz.yyy.xxx;
- TSD3022 – External Server Dangling Runtime Dependency Missing
The following cross-server dependencies could not be verified: {list}. Your database application might fail at runtime when {referencing object} is executed.
Example:
CREATE PROC proc1 AS
SELECT * FROM tsdhost.zzz.db1.t1;
RETURN 0;
- TSD3023 – At Most Two Part Name
When you create an object of this type in a database project, the object’s name must contain no more than two parts.
Example:
CREATE VIEW bbb.aaa.v1 AS
SELECT * FROM t1;
- TSD3024 – External Database Dangling Compile Time Dependency Missing
The following cross-database dependencies of {referencing object} could not be verified: {list}. You might not be able to deploy the project.
Example:
CREATE VIEW View1 AS
SELECT * FROM zzz.yyy.xxx;
- TSD3025 – External Database Dangling Runtime Dependency Missing
The following cross-database dependencies could not be verified: {list}. Your database application might fail at runtime when {referencing object} is executed.
Example:
CREATE PROC proc1 AS
SELECT * FROM zzz.db1.RandomTbl;
RETURN 0;
- TSD3032 – Invalid Fulltext Statement
You cannot use this statement when you create a full-text index in a database project.
Example:
CREATE FULLTEXT INDEX ON [SomeTableOrView] (column_1)
KEY INDEX [unique_index_name]
ON [fulltext_catalog_name]
WITH CHANGE_TRACKING AUTO;
ALTER FULLTEXT INDEX ON [SomeTableOrView] ENABLE;
TSD4xxx – Warning Messages
- TSD4001 – SQL Execution error
- TSD4001: {SQL server message} + “(SQL error = {sql error number}, {line, column})
- TSD4004
- Unable to find the specified schema identifier {0} in the symbol table.
- TSD4005
- {SQL server message} + “(SQL error = {sql error number}, {line, column})”
- Failed to drop object, but not because object does not exists in Design DB
- TSD4027 – SQL Parser Syntax Error
TSD7xxx – Warning Messages
- TSD7025 – Object Type File Extension Mismatch
- The schema type ‘{0}’ that the .sql file contains does not match the expected schema type ‘{1}’, based on the name of the .sql file
- TSD7031 – Duplicate Schema Identifier
- An object with name '{0}' already exists in the database project.
Filtering out warning messages:
As you can see the biggest bucket is the 30xx section, raised during the interpretation of the T-SQL code. Some of the warnings are there to inform you, for example when you are referencing an object that is outside the scope of the project. If you want to filter out a specific category you can do so in the Build project property page.
NOTE: Filtering out warnings will only suppress the warning message(s) and does not resolve the the cause
In a next blog post I will create continue the subject by using a demo project I created that shows the various forms of ambiguity, stay tuned.
-GertD
Comments
Anonymous
January 22, 2007
GertD on Verson Numbers and Error and Warning Groups. Tim Hibbard on Resolution - Adding more "Team"...Anonymous
May 14, 2007
What does error message TSD4001 means? Or TSD3025? How can you filtering out db dude's warning messages?Anonymous
October 08, 2007
Yes error TSD4001 is a Error not Warning and can't filter this out either. In my case it talks about my linked server Could not find server 'vitani' in sys.servers. I can filter out warning no problems. But there is no option in Data dude to add a linked server as part of the project set-upAnonymous
December 11, 2007
What does error message TSD4001 means? Or TSD3025? How can you filter out db dude's warning messagesAnonymous
May 24, 2010
The comment has been removed