NO_BROWSETABLE

I've seen the following query from a vendor product, and wondering what NO_BROWSETABLE actually achieves by including it for this select.

SET NO_BROWSETABLE ON
go
SELECT * FROM TABLE1 A, TABLE2 B WHERE (A.COLUMN1=B.COLUMN1) AND A.COLUMN1) ='57 ORDER BY B.ORDER
go
SET NO_BROWSETABLE OFF
go

Open in new window


I've seen explanations online, but I still don't get why you'd use it for a simple select. Can anyone provide a simple explanation? I can't seem to work out if doing this is a good thing or bad thing.
PeterErhardAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Guy Hengel [angelIII / a3]Billing EngineerCommented:
as by this page:
http://technet.microsoft.com/en-us/library/ms173812.aspx
BROWSE
    Specifies that updates be allowed while viewing the data in a DB-Library browse mode cursor. A table can be browsed in an application if the table includes a timestamp column, the table has a unique index, and the FOR BROWSE option is at the end of the SELECT statements sent to an instance of SQL Server.

The browse mode lets you scan the rows in your SQL Server table and update the data in your table one row at a time.

this means that your "select" is only the first step, the application (by user request, usually) may want to to UPDATEs to the rows returned.
0
PeterErhardAuthor Commented:
Thanks angelIII, but why would you need to set this NO_BROWSETABLE option in order to do that?

What does it provide than just doing the SELECT and then an update or a series of updates would provide in itself?
0
Guy Hengel [angelIII / a3]Billing EngineerCommented:
the key is this part of the sentence:
in a DB-Library browse mode cursor
means you can use db-library cursor, and without having to write a UPDATE yourself, by just modifying the field value (in the cursor object), and requesting the cursor to "save", it will be done for you.
0
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

PeterErhardAuthor Commented:
Fair enough, thanks.

Have you seen this before? Is it a good thing to do or a bad thing to do?
0
Guy Hengel [angelIII / a3]Billing EngineerCommented:
I never used it. is has surely performance benefit (as it closer to the db) in certain cases, but is less flexible for most scenarios. so unless you have very-high-volume db scenario where you need to optimize to the last milliseconds, you don't need to use this option
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
PeterErhardAuthor Commented:
Fair enough, thanks for your thoughts.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server 2008

From novice to tech pro — start learning today.