My Article On Dynamic Search Conditions

Jun 5, 2006

I've uploaded a new version of my article on Dynamic Search Conditions
on http://www.sommarskog.se/dyn-search.html. I've revised the article to
cover SQL 2005, and made a general overhaul of the content. There was a
*very* embarrassing error that I've corrected.

I've also added a new interesting method for static SQL. I've found that if
you say:

SELECT ...
FROM tbl
WHERE (key1 = @key1 AND @key1 IS NOT NULL)
OR (key2 = @key2 AND @key2 IS NOT NULL)
OR (key3 = @key3 AND @key3 IS NOT NULL)

This will use indexes if all columns are indexed, and furthermore SQL
Server will decide at run-time which index(es) to access. The article
includes a trick where you can combine this with the normal conditions for
dynamic searches for very good performance under some circumstances.

I also cover the new OPTION (RECOMPILE) to force statement recompile.
I was hoping that it could lead to just as good query plans as dynamic
SQL, but it's far cry from that.

--
Erland Sommarskog, SQL Server MVP, Join Bytes!

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pr...oads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodin...ions/books.mspx

View 3 Replies


ADVERTISEMENT

Setting Up Dynamic WHERE Conditions For A Gridview Control

Jun 8, 2008

I have a simple gridview control set up that contains a single ControlParameter (a DropDownList) whose value is used in my SqlDataSource's SelectCommand:
SelectCommand="SELECT * FROM [Wood_table] WHERE [wood_type] = ISNULL(@wood_type, [wood_type])"
The ISNULL check is so that I can select "ALL" from my dropdown and get all the rows with null values.
Everything works fine. Now what I'd like to do is exclude a specific wood_type value from the query if a checkbox control is selected. So what I'd like my select query to be when it's checked is something like
SelectCommand="SELECT * FROM [Wood_table] WHERE [wood_type] = ISNULL(@wood_type, [wood_type]) AND @wood_type <> 'pine' "
So I'd like the option of excluding that certain type of wood from the default query (all rows). I thought it might be better to just have a value in the dropdown list that was "ALL except pine" but that doesn't seem like it would work, what would I bind that to?
I fooled around with having the CheckBox oncheckchanged event set a global based on the checked status, easy enough, but then how can I modify my SelectCommand? Should I just access the SqlDataSource object programmatically in my CheckBox handler and fiddle with the SelectCommand property? I tried this and it works, but this seems messy, now if I modify my GridView in Design mode I need to remember to update my SelectCommand strings in the CheckBox handler too. Is this the best way to do this?

View 3 Replies View Related

JOIN Efficiency Using Multiple ON Conditions Versus WHERE Conditions

Jan 10, 2008

My question is fairly simple. When I join between two tables, I always use the ON syntax. For example:


SELECT

*
FROM

Users

JOIN UserRoles

ON (Users.UserRoleId = UserRoles.UserRoleId)


No problems there. However, if I then decide to further filter the selection based on some trait of the UserRole, I have two options: I can add the condition as a WHERE statement, or I can add the condition within the ON block.

--Version 1:

SELECT

*
FROM

Users

JOIN UserRoles

ON (Users.UserRoleId = UserRoles.UserRoleId)
WHERE

UserRoles.Active = 'TRUE'


-- Version 2

SELECT

*
FROM

Users

JOIN UserRoles

ON (Users.UserRoleId = UserRoles.UserRoleId

AND UserRoles.Active = 'TRUE')


So, the question is, which is faster/better, if either? The Query Analyzer shows the two queries have the exact same execution plan, which makes sense, since they're both joining the same tables. However, I'm wondering if adding the condition in the ON statement results in fewer rows the JOIN statement initially needs to join up, thus reducing the overall initial size of the results table before the WHERE conditions are applied.

So is there a difference, performance wise? I imagine that if Users had a thousand records, and UserRoles had 10 records, then the JOIN would create a cartesian product of the two tables, resulting in 10,000 records in the table before the WHERE conditions are applied. However, if only three of the UserRoles is set to Active, would that mean that the resulting table, before applying WHERE conditions, would only contain 3000 records?

Thanks for whatever information you can provide.

View 7 Replies View Related

Dynamic Search SP

Jul 12, 2006

Hi,

I'm new to SQL 2005.

I need to create sp that perform search on Users table.

It gets few Parameters.

@UserName

@UserStatus

@UserRole

@OrderByColumn

All Parameters are optional, and i need to build sql statement that include only the parameters that the sp got on the specific.

I cand do that by concatanating a string and execute it using the sp_executesql().

Is it the best way in sql 2005 ?

Can you please show me an example using Case When or what ever ?



Thanks A lot.

Tok





View 1 Replies View Related

Please Help, Dynamic Search Stored Proc.

Nov 22, 2004

Please help, I am trying to write a dynamic search stored procedure using three fields.
I use the same logic on the front end using VB to SQL server which works fine, but never tried a stored procedure with the logic.
Can you please help me, construct a stored procedure.
User can choose any of the three(progno, projno, contractno) fields as a where condition.

I ma using asp.net as front end with sql server backend.


CREATE PROCEDURE dbo.USP_Searchrecords
(@ProgNO nvarchar(50),
@ProjNOnvarchar(50) ,
@ContractNOnvarchar(50))
AS
DECLARE @myselect nvarchar(2000)
DECLARE @psql nvarchar(2000)
DECLARE @strsql nvarchar(2000)
SET NOCOUNT ON

@psql = "SELECT * FROM Mytable"

IF @ProgNO <> '' then
strsql = WHERE ProgNO = @ProgNO
end if

If @ProjNO <> '' then
if strsql <> '' then
strsql = strsql & " and ProjNO =@ProjNO
ELSE
strsql = wHERE ProjNO =@ProjNO
END IF
END IF

If @ContractNO <> '' then
if strsql <> '' then
strsql = strsql & " and ContractNO =@ContractNO
ELSE
strsql = wHERE ContractNO =@ContractNO
END IF
END IF

@myselect = @psql + @strsql

EXEC(@myselect)


Please help. Thank you very much.

View 3 Replies View Related

SQL Search :: Generating Dynamic Query

Jun 24, 2015

I have a table named "Persons"  which has the following columns [ Name ,Age, City]. I have a Windows app which has  3 textboxes for each column. My requirement is when I enter only name and enter the search button, I need result similar to this query.
     
select * from persons where name like '@tbname%'
when I enter only age and enter the search button, I need result similar to this query.
select * from persons where age =@tbage
when I enter name and city, I need result similar to this query.
select * from persons where name like '@tbname%' and city like '@tbcity%'

If I don't enter any fields and enter the serach button,  I need result similar to this query.

select * from persons for these 3 fields I might give any combination as above. But how can  I have a single query with all these combinations. I want a single query capable of doing this. I cannot have query like this, select * from persons where name like 'tbname%' and city like 'tbcity%' and age =@age

Because if I give only name,  city is considered as null nad age is considered as 0 and I get empty result. I cannot have Stored proc and I cannot do much in C# like using "selectqueryBuilder" etc. I need pure SQL query. 

View 4 Replies View Related

How To Dynamic Specify The Colums In Full-Text Search?

May 14, 2004

My problem is simple: i want to dynamic specified the columns in the ContainsTable, this is possible? Please see the example.


Declare @Test1 int
Declare @Test2 int
Declare @Query varchar(50)
Declare @Temp varcahr(50)

--Test
Set @Test1=1
Set @Test1=0
Set @Query='something'

--Add the column to put in containstable
IF (@Test1=1)
Begin
Set @Temp='ID'
End

IF (@Test2=1)
Begin
Set @Temp= @Temp + ',Name'
End

SELECT *
FROM
<table>
INNER JOIN
CONTAINSTABLE (<table>, @Temp, @Query) AS KEY_TBL
ON <table>.ID = KEY_TBL.[KEY]



Thanks

View 1 Replies View Related

SQL Server 2012 :: Build Search Condition Dynamic

Oct 6, 2015

IF OBJECT_ID('tempdb..#test') IS NOT NULL
DROP TABLE #test
CREATE TABLE #test (TestID CHAR(5) NOT NULL PRIMARY KEY)
INSERT INTO #test
SELECT '1'

[code]....

i am trying to build a dynamic where "or" clause finding difficulties.

View 7 Replies View Related

SQL 2000 MS Search: Boolean Search Doesn't Work When Search By Phrase

Aug 9, 2006

I'm just wonder if this is a bug in MS Search or am I doing something wrong.

I have a query below

declare @search_clause varchar(255)

set @Search_Clause = ' "hepatitis b" and "hepatocellular carcinoma"'

select * from results

where contains(finding,@search_clause)

I don't get the correct result at all.

If I change my search_clause to "hepatitis" and "hepatocellular carcinoma -- without the "b"

then i get the correct result.

It seems MS Search doesn't like the phrase contain one letter or some sort or is it a know bug?

Anyone know?

Thanks

View 3 Replies View Related

Article

Jan 9, 2004

Tech firms defend moving U.S. jobs overseas (http://www.msnbc.msn.com/default.aspx?id=3899043&p1=0)

Any thoughts or comments?

View 14 Replies View Related

MS Kb Article 825019 And Beyond

Aug 8, 2006

I am experiencing the behaviour described in this kb article:

http://support.microsoft.com/default.aspx?scid=kb;en-us;825019

but I am reliably informed that both the sql 2000 boxes which are linked have been patched to sp4.

Has anyone had any experience of this issue recurring post patching?

View 1 Replies View Related

How To Add New Article To Publication?

Dec 23, 2004

Hi,
I'm use MSSQL2000 SP3 with replication.
I want to know that Can i add new article to existing publication by
Enterprice Manager ?

someone told me that we can do that in older version but not now,right? :confused:

View 1 Replies View Related

How To Ask A Question...(MS KB Article)

Feb 2, 2006

MS has post a KB article on how to post a question on a online forum...

http://support.microsoft.com/kb/q555375

At first I though this was hilarious, but there is actually some good information in here that is applicable on this forum as well as anywhere else. Perhaps Brett could add this as a sticky?

Regards,

hmscott

View 2 Replies View Related

Add New Article To The Publisher

Jun 19, 2008

Dear All,
i'm in the transactional replication environment. we need to add one new table to the publisher. it is sql server 2005 environment. please explain me the steps

and in another table, i need to change the data type of a table.

please guide me

Arnav
Even you learn 1%, Learn it with 100% confidence.

View 15 Replies View Related

Article About Replication

Oct 31, 2007

hi
i'm new to replication. i'm looking for a full article that explains Replication good, can u take a link to that article ?
thanks

View 5 Replies View Related

Sp_dropsubscription, Article

Sep 26, 2005

Hi There

View 13 Replies View Related

Unpublishing An Article

Mar 8, 2006

Hi:

If I want to unpublish an article thru Enterprise Manager, it does not allow me to uncheck it at publication properties. It only allows me to uncheck articles if I delete the subscription first. Does anybody know how tp do this in Enterprise Manager without deleting the subscription?

Thanks



View 3 Replies View Related

Same Article In Different Publications

Sep 23, 2005

Hi!

View 1 Replies View Related

Add Article To Transactional Replication?

Oct 14, 2014

Here's what my script boils down to when adding a new view (admin.replication_test):

Code:
EXEC sp_addarticle
@publication = N'<publication name>'
, @article = N'replication_test'
, @source_owner = N'admin'
, @source_object = N'replication_test'
, @type = N'view schema only'
;

If I check the GUI, the article appears to be ticked in the publication.

Generate a new snapshot.

View not found in replicated database!

View 9 Replies View Related

Article On Advantages Of Sql Server Over VFP

Oct 9, 2007

hi guys,

im new to sql server...

i am currently studying sql server 2000

i know this subject has been asked before...

i would just like to ask if you know some related articles regarding advantages of using sqlserver over vfp dbf/dbc?

i am going to discuss it to my class.

thanks very much!

any help is very much appreciated!

Joel

View 4 Replies View Related

Adding New Article In Replication

Mar 27, 2008

how to add new article within the existing replication

View 1 Replies View Related

Article For Subscription That Does Not Exist ?!?

Jun 2, 2006

Hi There

I hope someone can help me asap.

I need to alter a column on a replicated table.

So i execute sp_dropsubscription and sp_droparticle for the table for all publication to that article in the database.

Usually i just alter the table and then execute sp_adddarticle and sp_addsubscription afterwards and everything is cool.

However in this case after i drop the subscriptions for the article, when i try alter the table it says it is being replicated.

I query sysobjects and see that the table has replinfo = 1 , this is snapshot replication, but i only have transactional replication ? I used to have snapshot but that was dropped long ago.

I then query sysarticles and i find the table, however the pubid (publication id) for the table is equal to the publication id of another databases publication ??? I also have found in sysarticles articles with a publication id's equal to publications that do not exist, for example articles will have pubid of 2 , but if i run sp_helppublication on all user databases there is no publciation with an id of 2 ?

Please help, even after i drop all subscriptions to an article it seems that sql server thinks the article belongs to another databases publciation or publications that no longer exist?

Maybe there is some sort of cleanup sp i can run or something but it seems to me sql server has gotten articles confused with old deleted publications that no longer exist.

Therefore after dropping all subscriptions i still cannot alter tables as sql server think it is still being published but it is not!

Thanx

View 4 Replies View Related

Article Row Filter - 2 Parameters

Nov 10, 2006

hello,

i need to filter an article based on a user-supplied datetime filter (the datetime parameter is specified by the subscriber just before replication). at the same time i need to filter again by user (different subscribers get different rows).

i already did the user-based filter using HOST_NAME( ). but the difficulty here (al least i think so) lies in passing 2 parameters to the filter. i cannot rely on using SUSER_SNAME to pass the user filter, because no one will want to create 500 user accounts. so i guess the only solution here is to pass both parameters using only HOST_NAME( ) and then write 2 splitting functions which uses HOST_NAME( ) as its parameter. am i right ?

publisher/distributor is sql server 2005, all subscribers use sql mobile.

TIA, kamil nowicki

View 10 Replies View Related

Is There Any Way To Just Reinitialize Only The Changed Article?

Oct 24, 2007

Hi,

I'm setting up Transaction Replication b/w SQL Server 2K and SQL Server 2K5.
I have published Tables, Views and SPs as articles.
When I try to modify the published Stored procedure, the changes are not replicated.

When I Reinitialize the Subscription and start the Snapshot agent, it is copying the changes

made. But all articles are reinitialized again, So it takes huge time to do this.

Is there any way to just reinitialize only the changed article?
Or Is there any work around for this problem?

Than

View 1 Replies View Related

Upgrading Packages Article

Nov 3, 2006

The chapter from my book that talks about upgrading packages from DTS to SSIS has been posted here : http://www.quepublishing.com/articles/article.asp?p=605035&rl=1

Didn't even know it until I happened to be doing a search on upgrading and the article popped up in the search...

How funny is that! :)

Hope it helps.

View 2 Replies View Related

Msdn Article On Getting @Identity Question

Sep 26, 2007

the msdn article explains how to input new data to a databse and return the primary key of the inputted row. It works perfectly. However, it explains how to insert a value, but there is a problem. It seems to set the value to be submitted in the VB code, instead of having the value be the user's input in the textbox. Look for the following line in the code below: newRow("ClientFileNumber") = "ClientFileNumber" It inputs "clientfilenumber" instead of what is actually inputted in the texbox. Does anyone know how to bypass this, to not have the words "clientfilenumber" inputted?Dim sqlconn As SqlConnection = New SqlConnection("Data Source=.SQLEXPRESS;AttachDbFilename=|DataDirectory|Client.mdf;Integrated Security=True;User Instance=True")
 Dim catDA As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Orders", sqlconn)
 catDA.InsertCommand = New SqlCommand("JobInsert", sqlconn)
catDA.InsertCommand.CommandType = CommandType.StoredProcedure
 catDA.InsertCommand.Parameters.Add("@ClientFileNumber", SqlDbType.VarChar, 50, "ClientFileNumber")Dim NewJobNumber As SqlParameter = catDA.InsertCommand.Parameters.Add("@Identity", SqlDbType.Int, 0, "OrdersID")
NewJobNumber.Direction = ParameterDirection.Output
 
sqlconn.Open()
 Dim catDS As DataSet = New DataSetcatDA.Fill(catDS, "Orders")
 
Dim newRow As DataRow = catDS.Tables("Orders").NewRow()
newRow("ClientFileNumber") = ""catDS.Tables("Orders").Rows.Add(newRow)
 catDA.Update(catDS, "Orders")
 
sqlconn.Close()
 
Response.Redirect("control_page_copy.aspx?NewJobNumber=" + NewJobNumber.Value.ToString())

View 1 Replies View Related

News / Article Application Storage

Jun 2, 2006

Hi,
I'm building a straightforward-ish news site. Currently, the story details (e.g. headline, description, author, date) are stored in a SQL DB. The news is categorised and the category details are also stored in an SQL table.
However - what is the best way to store the actual news article?
At the moment, when the user enters a story, they input the details and article text. The details are saved in the DB and the text is saved as an XML file with filename corresponding to the article DB primary key. When the story is "read" the app pulls the details from the DB and loads up the appropriate XML file from disk. 
For various reasons, I need to keep the article stored as XML, either in a file or in the DB. The DB provides for faster sorting and retrieval, and I don't want to store large amounts of data (i.e. the article itself) in the DB if avoidable.
I guess there are a few ways to do it -
1. Store details in DB and article as XML file.2. Store details and article in same DB table3. Store details in one DB table and articles in another
I would imagine that 3 would be the best, but would there be a performance hit? What is the maximum size of field (i.e. article size) I can have in a table?
Cheers
Graham Wilson.

View 3 Replies View Related

Replication - How To Add Article From Enterpise Manager

Feb 3, 2001

Hi,

It would be very nice if some people out there, using merge replication can tell me their strategy to add Article through Enterprise Manager.

I have Merge Replication, I have new table which has to be replicated. I counld not find options in Wizard to add New article for replication.

Any Help will be appreciated.

Thanking you in anticipation

Cheers
Hemant

View 1 Replies View Related

Added Column To Article But DTS Isn't Recognizing It

Dec 9, 2002

We're replicating columns in a table from 7.0 server to SQL2k server. Once we've got the data on SQL2k, we were able to take advantage of DTS that was not available in version 7.0.

I recenlty added a column to the article and changed the DTS accordingly (transformation columns). However, I'm getting this error ever though I added the new column in the DTS.

-------
The number of columns in the bcp file does not match what is defined in the DTS package. Regenerate the package.

-----

I've recreated the package with no luck. This is becoming urgent as it's supposed to go into production soon.

Please help!!

Thanks,

Colleen

View 2 Replies View Related

Adding Article To The Existing Replication

Feb 11, 2005

Hi All,

I am having a server where replication is set up between 2 differnt databases. It is currently running. I want to add a couple of tables to the replication. I tried using sp_addArticle, but after executing it, in the properties of the publication it shows the new tables, but at the database level the tables are missing.

I tried with sp_addsubscription but I am getting strange error:

Server: Msg 14100, Level 16, State 1, Procedure sp_addsubscription, Line 240
Specify all articles when subscribing to a publication using concurrent snapshot processing.


What can I do to publish the tables into the target database?

Thanks in advance.

View 5 Replies View Related

Add Article To Merge Repl. Publication

Apr 22, 2004

I am running merge replication (SQL 2000 with SP2) with an anonymous pull subscription. The application vendor has come out with update that requires adding a table to a database. The vendor has created scripts that will add the table, as well as some stored procedures. If I apply the scripts to both servers and add the table as a new article to the publication, am I going to have to apply a snapshot of the entire database (which is very large)?

Your help is greatly appreciated.

Gary

View 3 Replies View Related

Looking For A Good Article About Indexed Views.

Apr 29, 2004

Hello folks!
I'm looking for a good article about Indexed Views.

Cheers!
Rafael

View 1 Replies View Related

Comparative Article On SQL Express And MS Access

Dec 13, 2005

RD writes "Do you have a comparative article on SQL Express and MS Access?"

View 2 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved