A. In order for Microsoft to resolve a bug they need to re-create it on their systems. The best way to do this is to provide them with a repro script. They don't have access to your database, so the script needs to be able to show the problem when run on a brand-new install of SQL Server on a new database. 

Therefore it needs to contain all tables, user defined data types, triggers, views etc. needed to show the problem. If it needs data then keep this to a minimum - use INSERT INTO <tbl> VALUES (.....) type statements if possible. If not a small (zipped) amount of BCP data is ok. 

Alternatively re-write your query (if possible) to run against the pubs or northwind (v7 only) databases as these are always installed with SQL Server and come complete with a variety of tables, foreign keys, indices, data etc.

If the script/data is reasonably short then post to one of the newsgroups and one of MVP's can report it to Microsoft for you.

If it isn't short or a repro script is not practical due to the amount of information/data needed then you will need to raise a bug with Microsoft PSS directly. (See MSPSS faq entry for details)

An example repro script below :-

--
-- Bug Title : Access violation
--

--
-- Versions affected : SQL 6.5 
--

--
-- Fixed in : SQL 7.0
--

--
-- Microsoft incident / bug number : unknown/16767
--

--
-- Bug Description.
--
print
'
As title
'

--
-- Actual Repro script below here
--

use tempdb
go

CREATE TABLE table1
(
id int
)
GO

CREATE TABLE table2
(
id int
)
GO

CREATE TABLE table3
(
id int
)
GO

CREATE VIEW view1 AS
SELECT id
FROM table1
UNION ALL
SELECT id
FROM table2
GO

SELECT view1.id
FROM view1, table3
WHERE view1.id *= table3.id
GO