BUG: Select on a View May Generate Error 4409ID: Q219413
|
If you execute a SELECT statement and in the FROM clause you have a view that is aliased twice or more, and this VIEW has a UNION in its definition, you may encounter the following error message:
Msg. 4409, Level 20, State 1
The columns in the query definition and the view definition do not match.
A supported fix that corrects this problem is now available from Microsoft, but
it has not been fully regression tested and should be applied only to systems
experiencing this specific problem. If you are not severely affected by this
specific problem, Microsoft recommends that you wait for the next SQL Server service pack
that contains this fix.
To resolve this problem immediately, contact Microsoft Product Support Services
to obtain the fix. For a complete list of Microsoft Product Support Services
phone numbers and information on support costs, please go to the following
address on the World Wide Web:
http://www.microsoft.com/support/supportnet/overview/overview.asp
Date Time Version Size File name Platform
------------------------------------------------------------------------
1/29/1999 4:04:20 PM 6.50.422 2.43MB SQLSERVR.EXE i386 & Alpha
1/29/1999 3:10:06 PM 6.50.422 147 KB OPENDS60.DLL i386 & Alpha
Q154871 Determining If You Are Eligible for No-Charge Technical Support
To work around this problem create the view by selecting all the columns from the tables.
Microsoft has confirmed this to be a problem in SQL Server version 6.5.
For example, consider a VIEW defined as follows in the PUBS database:
CREATE VIEW writers AS
SELECT
'LastName' = au_lname ,
'FirstName' = au_fname ,
'Address' = address
FROM
pubs.dbo.authors
UNION
SELECT
'LastName' = au_lname ,
'FirstName' = au_fname ,
'Address' = ''
FROM
pubs.dbo.authors
GO
If the following statement is executed, it gives the above mentioned error message:
SELECT w.Firstname, w1.LastName
FROM writers w, writers w1
WHERE
w.firstname = w1.firstname
AND
w.lastname = w1.lastname
To work around this problem change the VIEW definition as follows:
CREATE VIEW writers AS
SELECT
'Id' = au_id ,
'LastName' = au_lname ,
'FirstName' = au_fname ,
'Phone No' = phone ,
'Address' = address ,
'City' = city ,
'State' = state ,
'Zip Code' = zip ,
'Contract type' = contract
FROM
pubs.dbo.authors
UNION
SELECT
'Id' = au_id ,
'LastName' = au_lname ,
'FirstName' = au_fname ,
'Phone No' = phone ,
'Address' = '' ,
'City' = '' ,
'State' = '' ,
'Zip Code' = zip ,
'Contract type' = contract
FROM
pubs.dbo.authors
GO
Additional query words: select view error
Keywords : kbcode kbSQLServ650bug
Version : winnt:6.5
Platform : winnt
Issue type : kbbug
Last Reviewed: July 2, 1999