This is always a fun problem to track down. Part of a DTS package I worked on had this problem where it converted ‘New York’ to ‘NE’ instead of ‘NY’ using a table full of state abbreviations. Once I found out where this problem was, I’m even more mystified at what the problem really is.
Within the SQL Designer for creating Lookup queries in DTS, I created the following query:
SELECT
	RTRIM(UPPER(Abbreviation)) AS State
FROM
	States
WHERE
	(Name = ?) OR
	(Abbreviation = ?)This yielded two results: NE amd NY. So there’s where the error occurred. Now for the shitty part.
I take the same query and run it in SQL Analyzer like so:
SELECT
	RTRIM(UPPER(Abbreviation)) AS State
FROM
	States
WHERE
	(Name = 'New York') OR
	(Abbreviation = 'New York')and of course, it returns one result: NY.
I don’t know what in the hell paramaterized queries do in the background within DTS, but I don’t like it.
In the end, I just ended up cheating:
SELECT
	RTRIM(UPPER(Abbreviation)) AS State
FROM
	States
WHERE
	(Name = ?) OR
	(CAST(Abbreviation AS VARCHAR(50)) = ?)
    See more posts about: microshaft |
    All Categories