Click here to monitor SSC
SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
 
 
 
        
Home       Members    Calendar    Who's On


Add to briefcase

t-sql 2008 r2 pass paramters Expand / Collapse
Author
Message
Posted Sunday, January 6, 2013 3:49 PM
Old Hand

Old HandOld HandOld HandOld HandOld HandOld HandOld HandOld Hand

Group: General Forum Members
Last Login: Today @ 12:07 PM
Points: 375, Visits: 441
In need to pass 5 parameters to a stored procedure in sql server 2008 r2 standard edition database. The 5 parameters come from a filename in a Visual Basic.Net 2010/2012 application. Two of the parameters are ok since they are numeric values however 3 of the parameters are character that translates to varchar values.
My problem is the fields that are: 1. major product name, 2. sub product name, and 3. customer name may not be the exact values that are actually contained within the database. There may be differences in the values like upper versus lower case, the number of spaces that are entered between words, words like incorporated may have the abbreviation, and other any special circumstances.

Between the 4 of the 5 parameters that are to be supplied to the stored procdure, I obtain distinct (unique) values for rows in the database.

The only thing I think I can do is to look of names in character fields for the minimum size value contained in those columns. Thus my question is how would you write the queries to obtain the values I can referring to?
Post #1403367
Posted Sunday, January 6, 2013 3:55 PM


SSCommitted

SSCommittedSSCommittedSSCommittedSSCommittedSSCommittedSSCommittedSSCommittedSSCommitted

Group: General Forum Members
Last Login: Yesterday @ 5:15 PM
Points: 1,945, Visits: 3,008
Thus my question is how would you write the queries to obtain the values I can referring to?


Do some data scrubbing in the front end before you pass values to the stored procedure. It is not worth it to guess all possible screw ups in the query; make the input layers do their job.



Books in Celko Series for Morgan-Kaufmann Publishing
Analytics and OLAP in SQL
Data and Databases: Concepts in Practice
Data, Measurements and Standards in SQL
SQL for Smarties
SQL Programming Style
SQL Puzzles and Answers
Thinking in Sets
Trees and Hierarchies in SQL
Post #1403368
Posted Sunday, January 6, 2013 5:24 PM


Hall of Fame

Hall of FameHall of FameHall of FameHall of FameHall of FameHall of FameHall of FameHall of FameHall of Fame

Group: General Forum Members
Last Login: Yesterday @ 3:25 AM
Points: 3,417, Visits: 5,328
I tend to agree with Joe on this. Scrub the data in your front end application.

Given that, at this point in time, you've probably already collected lots of garbage that you can't go back and correct for whatever reason, it would be possible to do some scrubbing on your search.

However, you really need to provide us some DDL and samples of the data (in consumable form), so that we can cobble together some code to address those cases.

Refer to this article on how to do that: Forum Etiquette: How to post data/code on a forum to get the best help



My mantra: No loops! No CURSORs! No RBAR! Hoo-uh!

My thought question: Have you ever been told that your query runs too fast?

My advice:
INDEXing a poor-performing query is like putting sugar on cat food. Yeah, it probably tastes better but are you sure you want to eat it?
The path of least resistance can be a slippery slope. Take care that fixing your fixes of fixes doesn't snowball and end up costing you more than fixing the root cause would have in the first place.


Need to UNPIVOT? Why not CROSS APPLY VALUES instead?
Since random numbers are too important to be left to chance, let's generate some!
Learn to understand recursive CTEs by example.
Splitting strings based on patterns can be fast!
Post #1403379
Posted Monday, January 7, 2013 4:43 AM


SSChampion

SSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampionSSChampion

Group: General Forum Members
Last Login: Today @ 6:38 AM
Points: 13,755, Visits: 28,147
I'm with Joe and Dwain.

You do have an option, but it's somewhat dangerous. SQL Server has a function called SOUNDEX that sounds out how a word would be spoken. This allows you to take two words, spelled differently that do mean the same thing and possibly get them to link together. However, it's a very inaccurate way to go about it. And, putting the function on the column would prevent index use. You could store a soundex value in a column and then compare parameters to that. But you're still going to hit the accuracy issue.

Go with Joe & Dwain's initial suggestion.


----------------------------------------------------
"The credit belongs to the man who is actually in the arena, whose face is marred by dust and sweat and blood..." Theodore Roosevelt
The Scary DBA
Author of: SQL Server 2012 Query Performance Tuning
SQL Server 2008 Query Performance Tuning Distilled
and
SQL Server Execution Plans

Product Evangelist for Red Gate Software
Post #1403540
« Prev Topic | Next Topic »

Add to briefcase

Permissions Expand / Collapse