Author |
Message |
toast
Joined: 19 Apr 2007 Posts: 13 Country: Australia |
|
Prevents execution of query on F5 |
|
Hi,
I'm having a problem since moving to version 2.0.10 BETA. Sometimes when I'm working in SQL Server Management Studio and I'm altering a view or stored proceedure and press F5 to execute it, Management Studio reports back saying
Command(s) completed successfully.
But in reality it didn't actually execute it. The view/stored procedure doesn't change.
When I disconnect the query and then reconnect and run the alter statement, the query executes and it actually does change the view/stored proc.
It's also happens for select statements. Where if I have a query
Select * from table where col1 = value
then Management Studio doesn't return any records when it should. Running the exact same query in a different window returns results. When I disconnect the bad query window from the server then connect back, it returns the rows as expected.
Somehow SqlAssistant is stealing the result set.
|
|
Thu Apr 19, 2007 10:56 pm |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Thanks for the bug report. Do you know if this happens only for the F5 hot key or other keys also stop working? Can you execute the query using appropriate commands in the SSMS menu or right-click menu?
|
|
Thu Apr 19, 2007 11:11 pm |
|
 |
toast
Joined: 19 Apr 2007 Posts: 13 Country: Australia |
|
|
|
I'm not 100% sure if it's just for the F5 button, but I'd guess that the problem would exist if I selected Execute from the menu.
It's not something that happens all the time so next time I notice it happening I'll be sure to try and find out as much information about the bug as possible.
What's strange also is that with the Select result set, it shows the header columns but just no rows returned. So something is being returned, but not everything.
Thanks for this free product too!
|
|
Thu Apr 19, 2007 11:20 pm |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Do you use CTrl+F9 by any chance?
If it happens again please try executing
SET FMTONLY OFF
and check if it restores the full execute capabilities.
|
|
Fri Apr 20, 2007 12:16 am |
|
 |
toast
Joined: 19 Apr 2007 Posts: 13 Country: Australia |
|
|
|
Hi,
It finally happened again!
I was creating a stored procedure that updated a table
 |
 |
UPDATE FEM_CASE_COST
SET
denormalised_CASE_AGENCY_masterAccountType_ID = AgencyMasterAccountType_ID
,denormalised_CASE_AGENCY_AgencyAccountID = AgencyAccount_ID
FROM
(
SELECT -- TOP 100
cc.CACO_ID CaseCost_ID
,a.AGCY_ID Agency_ID
,a.AgencyAccount_ID AgencyAccount_ID
,a.masterAccountType_ID AgencyMasterAccountType_ID
FROM
FEM_CASE_COST cc
INNER JOIN
FEM_CASE c
ON
cc.CASE_NO = c.CASE_NO
INNER JOIN
vFEM_AGENCY_AgencyAccount a
ON
c.AGCY_ID = a.AGCY_ID
) Agency
WHERE Agency.CaseCost_ID = FEM_CASE_COST.CACO_ID
|
The intellisense was working for the inside select SQL. When I did some work on the last WHERE clause SqlAssistant was picking up typing 'Agency.' and displaying the four column names of the table I just named. But when I changed one of the column names on the Agency table the intellisense stopped working all together, both for the inside select SQL as well as the outer Agency part.
Edit: I think what actually happened was, I had only three columns on the Agency table, Agency_ID, AgencyAccount_ID, AgencyMasterAccountType_ID. I didn't have the CaseCost_ID column. When writing the WHERE clause, typing in Agency. then realised that the CaseCost_ID wasn't on there and I needed it for the join. So I added the CaseCost_ID alias and THAT's when the Intellisense stopped working.
Then when I pressed F5 it said it completed execution, but the stored procedure wasn't created. I then tried as you suggested selected from the Query menu and clicked Execute. That still didn't execute it. I never at any stage pressed Ctrl+F9.
When I executed
SET FMTONLY OFF
in the window it did restore the execute capabilities, so the procedure was finally created. It also restored the intellisense!
I hope my rambling is repeatable for your developers, I myself don't want to try and repeat the process :)
|
|
Tue May 01, 2007 11:38 pm |
|
 |
toast
Joined: 19 Apr 2007 Posts: 13 Country: Australia |
|
|
|
Now I've got a repeatable process.
If you type out
 |
 |
SELECT *
FROM
(
SELECT
col.colid
FROM
syscolumns col
) Toast
WHERE Toast
|
Then press . (dot) after the "WHERE Toast"
The intellisense works and it displays the colid smallint.
If you then type col. like below
 |
 |
SELECT *
FROM
(
SELECT
col.colid
col
FROM
syscolumns col
) Toast
WHERE Toast.
|
It displays the intellisense then choose type. Now the SQL isn't correct because it's missing out on the , (comma). You have the following
 |
 |
SELECT *
FROM
(
SELECT
col.colid
col.type
FROM
syscolumns col
) Toast
WHERE Toast.
|
Then if you go down the the WHERE clause again and remove the dot at the end, then press Dot again the intellisense no longer works.
What's weird now, is once when I tried to execute a statement after doing this process I received the following
An error occurred while executing batch. Error message is: There is already an open DataReader associated with this Command which must be closed first.
But now I'm having a hard time trying to get it again.
Anyway, I hope this is NOW useful to your developers.
|
|
Wed May 02, 2007 12:22 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
Thanks for the detailed input. I hope the cause of the problem is now clear and we can fix it. I will send this issue to developers.
|
|
Wed May 02, 2007 12:38 am |
|
 |
SysOp
Site Admin
Joined: 26 Nov 2006 Posts: 7948
|
|
|
|
FYI: SQL Assistant is trying to obtain the description of the subquery result-set and something breaks during that process. Because of some internal error the execution context not restored. Manual execution of SET FMTONLY OFF restores the execution context.
|
|
Wed May 02, 2007 12:43 am |
|
 |
toast
Joined: 19 Apr 2007 Posts: 13 Country: Australia |
|
|
|
Good News!
The problem I was having was for version 2.0.10 BETA and 2.0.11 BETA
Now that I've installed 2.0.13 BETA I can't replicate the error anymore.
|
|
Wed May 02, 2007 12:54 am |
|
 |
|