|
Thanks for the test script.
SELECT p.refCategory, t.Name, t.Added
FROM
(SELECT DISTINCT refCategory
FROM @Product) p
CROSS APPLY
(SELECT TOP 1 Name, Added
FROM @Product
WHERE refCategory = p.refCategory
ORDER BY Added ASC) t
|
|
|
|
|
Hi russell ,
5 from my side.
This will run perfectly...
Reasons are not Important but Results are Important.
http://www.sql4professional.blogspot.com
Swati Tripathi
modified on Friday, May 28, 2010 1:46 AM
|
|
|
|
|
Learn something every day, I'd have gone with the rownumber/partition solution. I've never used cross apply!
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Cool! Thanks for updating it
I are Troll
|
|
|
|
|
Hello,
I have written an application that needs to connect to a database that I have hosted online. I can connect perfectly using the MS SQL Management Studio, but when I try to connect using my own code, the connection fails and gives the following reason:
"The user is not associated with a trusted SQL Server connection"
I am using the same login information that I am using with the management studio. This is how the connection string is coded:
SqlConnection Conn = new SqlConnection("server=" + txtServerName.Text + ";user id=" + txtUID.Text + ";password=" + txtPWD.Text + ";Trusted_Connection=True");
I am able to connect perfectly on Localhost using a clone of this exact database.
Can you explain or correct this problem? Thank you, Pat
|
|
|
|
|
A trusted connection is useful on a local network, where your windows account is "trusted".
For a hosted SQL Server such as the one you described, you would be using a standard connection rather than a trusted one.
|
|
|
|
|
Damian,
Thank you for your answer. Actually, I added that on because it wasn't working without it. Now, since it wasn't working with it, I removed it...and now it is working again. I can't explain it, but since it is now working without it, you must be right. I do not know why it would not connect before. I have marked your answer as correct and I appreciate your assistance. Thank You.
Best Regards, Pat
|
|
|
|
|
Is there any way in sql server 2000, 2005 by which we can export only the definition of tables and stored procedure.
What i am trying to ask:
Suppose there is table creation syntax like:
Create table TableName
(col1 datatype,
col2 datatype,
.
.
.)
Same as for stored procedure.
I want only definition not DATA of whole database.
Can it be possible.
|
|
|
|
|
If you have the management studio available just right click on the object you want to script. In 2000 you select All Tasks -> Generate SQL script. In 2005 it is slightly different but just as easy to accomplish.
Thanx,
>>>-----> MikeO
|
|
|
|
|
You can use SHOW CREATE TABLE which will give you the correct CREATE TABLE statement for each table.
Happy Coding.
|
|
|
|
|
Right click on the database -> All Tasks (Or New i cant remember for 2000 anymore)-> Generate SQL Script then run through the wizard, by defualt 2000 wont script out the data, at least mine wouldnt. I do remember that in 2000 you had to check the "Show All Items" box, then you could use the newly enabled check boxes below it to select all items of a certain type. If yours is giving you all the data there should be an option to disable it in one of the tabs of the wizard, my problem with 2k was getting the data in the table out w/out doing an ExportData.
I've never used 2005, but if its similar to 2008 there is an option in, i believe the second step of the Generate Script wizard, that says Script out Data. Its in the bottom section of the large properties panel looking step. before you pick the objects you want.
Hope it helps.
Please remember to rate helpful or unhelpful answers, it lets us and people reading the forums know if our answers are any good.
|
|
|
|
|
You can try the following transact-sql which will return all the table with the column definition of a particular database.
SELECT * FROM targetDatabase.INFORMATION_SCHEMA.COLUMNS
Thanks
Md. Marufuzzaman
I will not say I have failed 1000 times; I will say that I have discovered 1000 ways that can cause failure – Thomas Edison.
|
|
|
|
|
Going to try asking this a different way and see if anyone can help.
I have two queries:
SELECT * FROM tblData WHERE Machine = 1 and Operator = 1
and
SELECT SUM(WorkSecs) as WorkTime, SUM(RunSecs) as RunTime
FROM tblData WHERE Machine = 1 and Operator = 1
Both of these queries are in a custom application I wrote that has been in operation for about four years. Both queries were taking only milliseconds to return a record. Some time last week the second query started taking about three seconds to return a record.
The owner of the SQL server admits to mucking about with data table, so I have DROPPED the data table and CREATED it again. I have also backed up the database and truncated the transaction logs (though I don't think it would have any effect on this). The second query is still taking about three seconds to execute.
The custom application is written in C++ using ADO and trusted connection. There are no ODBC/DSN connections defined on the client computer.
Can anyone think of anything I can check on the SQL server or the client?
Thanx,
>>>-----> MikeO
modified on Wednesday, May 26, 2010 10:16 AM
|
|
|
|
|
I don't know enough DBA stuff to answer, but the fact that the second query uses aggregating functions would start me looking at things associated with temporary storage. Also maybe verify the response times by executing the SQL on the server.
Chris Meech
I am Canadian. [heard in a local bar]
In theory there is no difference between theory and practice. In practice there is. [Yogi Berra]
|
|
|
|
|
Not sure where the temporary storage would take place. I have executed the query on the server. There is no noticeable delay. And that is puzzling because both the query sent by the code and the query typed into the Management Studio are executed on the server.
Thanx,
>>>-----> MikeO
|
|
|
|
|
In SQL Server Management studio, under the query menu, select the option to "Include Actual execution Plan" and run your query again.
You want to see lots of seeks and no scans. Scans indicate it is reading the table or index from top to bottom.
give it a shot
|
|
|
|
|
David,
I have done this per your suggestion to an earlier inquiry. There are no scans. It executes as quickly as I would expect in the Management Studio.
Thanx,
>>>-----> MikeO
|
|
|
|
|
Looking at the SQL Profiler on the SQL server I see that each time the second query is called it is followed by an 'Audit Login'. There is always a delay between the query and the 'Audit Login' and apparently my app does not receive a record set until after this is completed. Any ideas what could be causing this?
Thanx,
>>>-----> MikeO
modified on Wednesday, May 26, 2010 8:03 AM
|
|
|
|
|
Further review of the SQL profile shows this:
Main program opens database connection (SPID 55) ...3 sec...
Events processing thread opens database connection (SPID 56) ...3 sec...
[PROCESS NEXT EVENT]
Event processing thread does aggregate query (SPID 56)
Audit login occurs (SPID XX) (XX usually between 57 and 60) ...3 sec...
SET NO_BROWSABLE_TABLE_ON (SPID XX)
sp_prepare 'select * from tblData' (SPID XX)
SET NO_BROWSABLE_TABLE_OFF (SPID XX)
sp_unprepare (SPID XX)
Audit logoff occurs (SPID XX)
Event processing thread does aggregate query on tblData (SPID 56)
Audit login occurs (SPID XX) (XX usually between 57 and 60) ...3 sec...
SET NO_BROWSABLE_TABLE_ON (SPID XX)
sp_prepare 'select * from tblData' (SPID XX)
SET NO_BROWSABLE_TABLE_OFF (SPID XX)
sp_unprepare (SPID XX)
Audit logoff occurs (SPID XX)
Event processing thread does non-aggregate query on tblData (SPID 56)
Event processing thread calls stored procedure (SPID 56)
Event processing thread does non-aggregate query on tblData (SPID 56)
[LOOP: PROCESS NEXT EVENT]
I have never run SQL profiler before. From what I have seen I have to guess that either these 'Audit Logins' were not occurring two weeks ago or opening database connections was not taking as long two weeks ago.
Can anybody run SQL profiler and give me an idea how long opening a connection normally takes?
Thanx,
>>>-----> MikeO
|
|
|
|
|
If anyone is interested, I found a solution to this problem on another forum.
The connection string I am using has the server IP address to avoid any DNS issues. Apparently this is not good enough. I had to place an entry for the server in the hosts table of the client machine. Once this was done the time it takes to connect to the server drops back into the milliseconds range.
Thanx,
>>>-----> MikeO
|
|
|
|
|
Just be careful with the HOSTS table entry; clearly and concisely document what was done and why.
We had a problem last year with not being able to talk to a device because of undocumented HOST table entries.
Tim
|
|
|
|
|
If I drop / create a table in MSSQL 2005 will all of the dependent views still work?
Thanx,
>>>-----> MikeO
|
|
|
|
|
if i get your question right
If you drop a table that is used in a view will it still work? the answer is no you will get binding error
if you then recreate said table? then yes the view will work.
hope that answers your question
Marc Clifton wrote: That has nothing to do with VB. - Oh crap. I just defended VB!
|
|
|
|
|
The question is will I have to drop and create each view again?
Thanx,
>>>-----> MikeO
|
|
|
|
|
i create a test script to try out your question and i didn't have to recreate the view.
but you will have take into account indexes etc.
Marc Clifton wrote: That has nothing to do with VB. - Oh crap. I just defended VB!
|
|
|
|