Deadlock When Working With Temporary Table?

Oct 16, 2007



Hi,

We wrote some stored procedures, and some temporary table used because there some some complicated logic.

In normal testing, the application works weel, but very easy to get deadlock error in stress testing.

Error message like this:
Transaction (Process ID 51) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.

Sample code:
CREATE TABLE #PageIndexForUsers
(
IndexId int IDENTITY (0, 1) NOT NULL,
UserId int
)

INSERT INTO #PageIndexForUsers (UserId)
SELECT USER_ID
FROM Users


Other tested functions will insert/update table Users too.

I searched on internet, several people said it's MS bug, anybody help?

View 1 Replies


ADVERTISEMENT

What Is The Difference Between: A Table Create Using Table Variable And Using # Temporary Table In Stored Procedure

Aug 29, 2007

which is more efficient...which takes less memory...how is the memory allocation done for both the types.

View 1 Replies View Related

Possible To Have Temporary Rows In A Non-temporary Table? Lifespan On Rows..

Mar 14, 2004

I have a table that includes the html-output of different parts of my pages. This table grows very big very fast, and rows older than 24 hours are useless.

My question is if it is possible to have temporary rows, whose are automatically deleted after these 24 hours? And then how to accomplish that?

View 2 Replies View Related

Table Names In Stored Procedures As String Variables And Temporary Table Question

Apr 10, 2008

How do I use table names stored in variables in stored procedures?




Code Snippetif (select count(*) from @tablename) = 0 or (select count(*) from @tablename) = 1000000





I receive the error 'must declare table variable '@tablename''

I've looked into table variables and they are not what I would require to accomplish what is needed.
After browsing through the forums I believe I need to use dynamic sql particuarly involving sp_executesql. However, I am pretty new at sql and do not really understand how to use this and receive an output parameter from it(msdn kind of confuses me too). I am tryin got receive an integer count of the records from a certain table which can change to anything depending on what the user requires.




Code Snippet

if exists(Select * from sysobjects where name = @temptablename)
drop table @temptablename




It does not like the 'drop table @temptablename' part here. This probably wouldn't be an issue if I could get temporary tables to work, however when I use temporary tables i get invalid object '#temptable'.

Heres what the stored procedure does.
I duplicate a table that is going to be modified by using 'select into temptable'
I add the records required using 'Insert into temptable(Columns) Select(Columns)f rom TableA'
then I truncate the original table that is being modified and insert the temporary table into the original.

Heres the actual SQL query that produces the temporary table error.




Code Snippet
Select * into #temptableabcd from TableA

Insert into #temptableabcd(ColumnA, ColumnB,Field_01, Field_02)
SELECT ColumnA, ColumnB, Sum(ABC_01) as 'Field_01', Sum(ABC_02) as 'Field_02',
FROM TableB
where ColumnB = 003860
Group By ColumnA, ColumnB

TRUNCATE TABLE TableA

Insert into TableA(ColumnA, ColumnB,Field_01, Field_02)
Select ColumnA, ColumnB, Sum(Field_01) as 'Field_01', Sum('Field_02) as 'Field_02',
From #temptableabcd
Group by ColumnA, ColumnB




The above coding produces

Msg 208, Level 16, State 0, Line 1

Invalid object name '#temptableabcd'.

Why does this seem to work when I use an actual table? With an actual table the SQL runs smoothly, however that creates the table names as a variable problem from above. Is there certain limitation with temporary tables in stored procedures? How would I get the temporary table to work in this case if possible?

Thanks for the help.


View 6 Replies View Related

Creating A Common Table Expression--temporary Table--using TSQL???

Jul 23, 2005

Using SQL against a DB2 table the 'with' key word is used todynamically create a temporary table with an SQL statement that isretained for the duration of that SQL statement.What is the equivalent to the SQL 'with' using TSQL? If there is notone, what is the TSQL solution to creating a temporary table that isassociated with an SQL statement? Examples would be appreciated.Thank you!!

View 11 Replies View Related

Mirroring :: Email Deadlock Information When A Deadlock Occurs

Nov 10, 2015

Is there a way to send out an email woth deadlock information (victim query, winner query, process id's and resources on which the deadlock occurred) as soon as a deadlock occurs in a database or at instance level?I currently has trace flag 1222 turned on. And also created an alert that send me an email whenever a deadlock occurs. but it just says that a deadlock occurred and I log into sql server error log and review the information.

View 5 Replies View Related

Is It Possible To Insert Data Into A Table From A Temporary Table That Is Inner Join?

Mar 10, 2008

Is it possible to insert data into a table from a temporary table that is inner join?
Can anyone share an example of a stored procedure that can do this?
Thanks,
xyz789

View 2 Replies View Related

Difference In Creating Temporary Table By #table And ##table

Nov 29, 2006

Banti writes "IF i create temporary table by using #table and ##table then what is the difference. i found no difference.
pls reply.
first:
create table ##temp
(
name varchar(25),
roll int
)
insert into ##temp values('banti',1)
select * from ##temp
second:
create table #temp
(
name varchar(25),
roll int
)
insert into #temp values('banti',1)
select * from #temp

both works fine , then what is the difference
waiting for ur reply
Banti"

View 1 Replies View Related

Temporary Table Vs. Table Valued Function

Jun 6, 2006

I need to return a table of values calculated from other tables. I have about 10 reports which will use approx. 6 different table structures.

Would it be better performance wise to create a physical table in the database to update while calculating using an identity field to id the stored procedure call, return the data and delete the records. For Example:

StrVal1,Strval2,StrVal4,IntVal1,IntVal2,FloatVal1...

Or using a table-valued function to return a temp table as the result.

I just dont know which overhead is worst, creating a table per function call, or using a defined table then deleting the result set per sp call.

View 4 Replies View Related

Deadlock On Single Table

Jul 20, 2005

We have one user who enters a transaction and then does a single rowupdate (updates all columns but only one is changing - this is due tothe way our sql is generated in the application), at this pointanother user enter a transaction and tries to update the same row (heunderstandably has to sit and wait while he is blocked by the originaluser). The original user then updates the same row again – at thispoint the second user is chosen as a deadlock victim and killed. If Itry and recreate this with any other tables(or pubs) I get my expectedbehaviour of the original user just doing 2 successful updates and thesecond user then completing his update once the original user haseither committed his changes or rolled back. The query plan indicatesthat a drop and insert of the row is happening (this is not the casewith any other tables where we get our expected behaviour). This onlyhappens when the index is clustered - if we use a non-clustered indexit does not occur.Is this expected behaviour? it seems dangerous to me as the firstuser has not commited or rolled back his updates. It was onlyhighlighted by a fault in our application that caused the secondupdate to be executed.I have some thoughts about it being something to do with a row lockbeing relased due to a delete / insest of the row in the second update(we see this in the execution plan).....Any help much appreciated as I am struggling to get my head round howthe second user was ever able to get hold of the resource.

View 1 Replies View Related

How To Get Table Info From RID Deadlock ?

May 7, 2007

Hi There



I am trying to troubleshoot deadlock issues.

The dead lock is with a RID.



Now from various links i have established that you have to use DBCC PAGE() with relevant info to get more information, i get back a object and index id, m_objid.



However i dont know how to get the tablename form here, msdn simply says that it is an allocation id not and actual table id, so how can i from here get to table information?



All i am trying to figure out is which table is affected fromt he RID dealock, but that does not seem to be a simple process.



Thanx

View 5 Replies View Related

Temporary Table

Feb 1, 2004

Hi

I am using SQL 2000 I have the following code. When saving it, I am getting an error:
There is already an object named '##tbl' in the database

This is although #tbl is dropped.
Is threrea way to avoid this error? the only work around I found was to create a string with the SQL command and call EXEC, but I don't like this solution as it prevents early compilation of the procedure.

declare @x int
set @x=1
IF @x=0
begin
create table #tbl (
abc int
)
drop table #tbl
end

IF @x=1
begin
create table #tbl (
abc int
)
drop table #tbl
end

Than you.

View 5 Replies View Related

Temporary Table

Nov 8, 2005

Hi

I have to create a temporary table for generating a report in VB.
Pls help how to check the temporary table name in database.
I want if exits than drop and create a new one.


thanks

asm

View 3 Replies View Related

Temporary Table

Apr 11, 2006

I have the following fields in table A:

GL_ID|GL_Name_VC| Amount |Period_TI|Year_SI|
===================================================
1000| Sales | -20,000.00 | 01 | 2005
===================================================
1000| Sales | -10,000.00 | 02 | 2005
===================================================
1001| Cost | 5,000.00 | 01 | 2005
===================================================
1001| Cost | 5,000.00 | 02 | 2005

the fields above have the following datatype:

Fields | Datatype
===================================
GL_ID | Integer
GL_Name_VC | Variable Character
Amount | Integer
Period_TI | TinyInteger
Year_SI | SmallInteger

The above database is running on Microsoft SQL Server 2000 and i would like to query
for a report that looks something as below:

Description | Period 01 | Period 02 | Year to Date
=========================================================
Sales | 20,000.00 | 10,000.00 | 30,000.00
Total Sales | 20,000.00 | 10,000.00 | 30,000.00

Cost | 5,000.00 | 5,000.00 | 10,000.00
Total Cost | 5,000.00 | 5,000.00 | 10,000.00
=========================================================
Profit | 15,000.00 | 5,000.00 | 20,000.00

The above report would list 4 columns, with the last column being a calculated field as a sum of
Period01 + Period02 Amount, sorted by GL_ID and group under a summation row called
Total Sales & Total Cost.There would be a net amount appearing as Profit (Total Sales-Total Cost).

Guys, hope someone out there can help me with the sql command for the above report?

View 2 Replies View Related

Temporary Table

Jun 20, 2007

How would someone set up a temporary table from a database in order to then run a query against it to get more accurate data??

View 11 Replies View Related

Temporary Table

Jul 29, 2007

Hi,

i have:

[first table]
user_id
user_name
user_password

[second table]
set
item
order

Since the second table is somehow only temporary table (having at the front ajax script), i need the third table to store user's ID and all the info from second table.

What would be the easiest way to do it, since the first table contains only one row per user and the second one 40 rows per user.

thank you for your thought!

View 2 Replies View Related

Temporary Table

Nov 27, 2007

Hi,

my code looks like this

Declare @Temp Table(id_customer int, id_product varchar(10))
Insert Into @Temp(id_customer, id_product) Values(12, 'ABC104')
Insert Into @Temp(id_customer, id_product) Values(12, 'ABC143')
Insert Into @Temp(id_customer, id_product) Values(12, 'ABC103')
Insert Into @Temp(id_customer, id_product) Values(13, 'ABC102')
Insert Into @Temp(id_customer, id_product) Values(14, 'ABC101')
Insert Into @Temp(id_customer, id_product) Values(15, 'AABC10')
Insert Into @Temp(id_customer, id_product) Values(15, 'AABC11')

select * from @Temp
Declare @results VarChar(100)
Select @results = IsNull(@results + '; ', '') + IsNull(id_product, '')
From @Temp
where id_customer = 12
Select @results as all_products


and when i run "Select @results as all_products" what shall i do to get id_customer along? if i do "select id_customer, @results as all_products" I get error in return :(

thank you

View 5 Replies View Related

Temporary Table

Feb 12, 2007

hi!

i used some temporary table in store procedure (sqlserver 2005)

our team have report software calisto .

the calisto use crystal and reports which use

this store procedure .

because of that,

we have list of many temporary table with the same name

#dbo.sug_name ... ,#dbo.sug_name ... ,......

in the system database .

what could be the reason for that and how can we drop it ?

Msg 3701, Level 11, State 5, Line 2

Cannot drop the table '#sug_name', because it does not exist or you do not have permission."

View 10 Replies View Related

Temporary Table Name

Jun 27, 2006

Hi all

Is it possible to name a table when a script runs with the date ie

select name, address

into test (date)

from company

where the (date) is will be todays date

Thanks



Richard

View 4 Replies View Related

Temporary Table Pb

May 9, 2007

Hi



I call some SQL server procedures via OLEDB under Visual C++.

[ Commands like " EXEC myProc 'param1', 'param2' " ]

My connection string is Provider=SQLOLEDB;Data Source=.SQLEXPRESS;Integrated Security=SSPI;Initial File Name=C:devsrcindb.mdf





I encounter a pb when there is a 'SELECT (...) INTO #table' into my db procedure.



Something like:

ALTER PROCEDURE myProc

AS



SELECT 1 as 'return1', 2 as 'return2' into #table

SELECT * FROM #table



RETURN



works of course very well when I call it from Visual or Server Management Studio Express

but doesn't return any recordset when I call it from OLEDB.



2nd thing:

SELECT 1 as 'return1', 2 as 'return2' into table

SELECT * from table



-> table is created [I can see it in the db], but no selection is returned to my OLEDB caller.



Is it a security pb ?



View 1 Replies View Related

Deadlock On Update Using Temp Table

Dec 29, 2005

I sometimes get the following error from an update statement in astored procedure:Transaction (Process ID 62) was deadlocked on thread | communicationbuffer resources with another process and has been chosen as thedeadlock victim. Rerun the transaction.The isolation level is READ UNCOMMITTED and there are no explicittransactions in the stored procedure. The update statement is asfollows:UPDATE PLSET PL.PL_SI_LAST_YEAR_AMOUNT = #tmpWorkPLPrior.PRIOR_AMOUNTFROM #tmpWorkPLPriorWHERE PL.COMPANY = @compAND PL.PLAN_YEAR = @yearAND PL.FORECAST_QUARTER = @qtrAND PL.VERSION_ID = @verAND PL.BUSINESS_UNIT_CODE = #tmpWorkPLPrior.BUSINESS_UNITAND PL.PROJECT_ID = #tmpWorkPLPrior.PROJECT_IDAND PL.BUDGET_CODE = #tmpWorkPLPrior.BUDGET_CODEAND PL.BUSINESS_UNIT_CODE <> 'G7'PL rows: 24,342,553PL rows - Filtered: 230,088#tmpWorkPLPrior rows: 3,641Updated rows: 43,692The temp table (#tmpWorkPLPrior) is created by a SELECT INTO statement.It has the values that need to be set in the PL table. The PL tablehas a clustered index on 8 columns. The filters (@comp, @year, ...)select 230,088 rows. When the update succeeds it updates 43,692 rowsin about 15 seconds. Why does this sometimes deadlock and other timessucceed? There is nothing else running, so the process is deadlockingon itself.Thanks,Frank

View 4 Replies View Related

Creation Of Temporary Table

Jan 24, 2008

Hi All,
DECLARE @MyTableVar table( EmpID nvarchar(10) )
select login_id from cpm into @MyTableVar
 Above syntax is not working....
Actually i want to table variable and store the result returned by stored procedure.
How to do that...
Thanks and reagards
A

View 3 Replies View Related

Cannot Drop Temporary Table

Apr 30, 2008

I'm trying to drop a temporary table.  I keep getting this error:
Cannot drop the table '#temp_table', because it does not exist in the system catalog.
I tried the following but it did not work, so help would be appreciated.
if object_id('tempdb..#temp_table') is not nulldrop table #temp_table

View 1 Replies View Related

Substitute For Temporary Table?

Jun 2, 2006

Hello once again,
My last question concerns (temporary) tables. In a web form (VWD Express, Asp,Net 2.0, VB, .mdf db, Ajax) I have two gridviews. One gets its data from textboxes and dropdownlists as the user clicks an ok button. This data is then sent to a "junk" table in the db. The other gridview retrieves this data "automatically" and displays the data, filtered and grouped by some SQL statements. When the user finally clicks an Insert record button, the data from this second gridview gets inserted in another table in the db and the data from the first "junk" table is disposed.
I guess it shouldn't be necessary to insert, retrieve, and delete the data in and from the "junk" table. Even though it does work like a charm, I guess it would be better if I could do it wit hsome kind of "temporary table", array or the like so that the db wouldn't need to be updated to this extent. Still, I really like the simplicity of using gridviews and the rest of the page's code is complex enough, so I don't really want to substitute this behaviour for tons of hand-written, hard-to-follow, and hard-to-integrate code.
What are my options? Any help would be greatly appreciated.
Pettrer

View 2 Replies View Related

How To Find A Temporary Table Using T-SQL

Aug 16, 2000

Im trying to find a table and Drop in T-SQL
using this script.

/* Start */
Use Students
IF exists (Select * from information_schema.tables
where table_name ='##Exams_result)
drop table ##Exams_result
go
Create table ##Exams_result..............etc

/* end */

But I cant find my temporary table on this way...
Any sugestion?

Luiz Lucasi
lc@culting.com
Rio de Janeiro - Brazil

View 1 Replies View Related

One Big Query Or Use Temporary Table?

Jan 11, 2001

Hi,

Can any of you tell me what is right?

When we are writing a big query that against to 25+ tables (it has lots of lookup and lots of business logic in it so it will have lots of left outer joins, right outer joins, inner join, UNION, group by, and lots of SQL server functions) should we put everything in one select statement? Or we should create lots of temporary tables and then join them together?

My friend told me that I should use one statement instead of lots of temp tables in order to reduce the physical read. He does not like the temp table idea since there will be lots of user running the query in the same time and it will use lots of space. But I don’t believe that is true. (I believe when you put everything in one statement, SQL server still needs to create the result set in the temp db.) There will be lots of join going on and it could hurt the performance.

I believe that
1.We should create the temp tables and then join the temp tables together later to get the final results. we can create the index on the temp table at runtime.
2.If the order of columns in the index does not match to our where clause, then the index is useless.
3.If there is a SQL function in the where clause, the index is useless. (for example, where Datepart(yy, orderdate)=’1998’)
4.If there is a NOT in the where clause, the index is useless.

What do you think? Are you agree with me?

Following is the query. Is there any better way to do this?

Select d.Description as Division,
c.Description as Region,
b.StateCode as State,
b.FacilityNumber,
b.Name as FacilityName,
(Case When a.ExitDate Is Not Null Then Convert(Varchar(10),a.ExitDate,101)
Else 'Pending' End) as PriorStdSurveyExit,
(Case When a.ExitDate Is Not Null And a.IJValid > 0
Then Convert(Varchar(10),a.ExitDate+89,101)
Else '' End) as ThreeMonthWindow,
(Case When a.ExitDate Is Not Null Then Convert(Varchar(10),a.ExitDate+179,101)
When a.IJValid > 0 Then Convert(Varchar(10),a.ExitDate+179,101)
Else 'Pending' End) as SixMonthWindow,
(Case When a.ExitDate Is Not Null Then Convert(Varchar(10),a.ExitDate+450,101)
When a.IJValid > 0 Then Convert(Varchar(10),a.ExitDate+450,101)
Else 'Pending' End) as FifteenMonthWindow
From (
Select a.FacilityNumber, a.ExitDate, IsNull(b.FacilityNumber,0) as IJValid
From
(
Select b.FacilityNumber, Max(a.ExitDate) as ExitDate
From Survey a
Inner Join Facility b on (a.FacilityID = b.FacilityID)
Inner Join SurveyFormatCode c on (a.SurveyFormatCodeID = c.SurveyFormatCodeID)
Inner Join SurveyTypeCode d on (a.SurveyTypeCodeID = d.SurveyTypeCodeID)
Where a.VerbalResultDate is Not Null
And c.Description Like 'Standard%'
And d.Description Like 'LTC%'
And a.ExitDate <= @InDate
Group By b.FacilityNumber
) a Left Join
(
Select Distinct b.FacilityNumber
From Survey a
Inner Join Facility b on (a.FacilityID = b.FacilityID)
Inner Join SurveyFormatCode c on (a.SurveyFormatCodeID = c.SurveyFormatCodeID)
Inner Join SurveyTypeCode d on (a.SurveyTypeCodeID = d.SurveyTypeCodeID)
Inner Join ComplianceRatingCode e on (a.ComplianceRatingCodeID = e.ComplianceRatingCodeID)
Where a.VerbalResultDate is Not Null
And (c.Description Like 'Standard%'
And d.Description Like 'LTC%')
And e.Description Like 'Category 4%'
And a.ExitDate <= @InDate
Union
Select Distinct b.FacilityNumber
From (
Select b.FacilityNumber, Max(a.ExitDate) as ExitDate
From SurveyCitation e
Inner Join Survey a on (a.SurveyID = e.SurveyID)
Inner Join Facility b on (a.FacilityID = b.FacilityID)
Inner Join SurveyFormatCode c on (a.SurveyFormatCodeID = c.SurveyFormatCodeID)
Inner Join SurveyTypeCode d on (a.SurveyTypeCodeID = d.SurveyTypeCodeID)
Inner Join Citation f on (e.CitationID = f.CitationID)
Inner Join SSLetterCode g on (f.SSLetterCodeID = g.SSLetterCodeID)
Where a.VerbalResultDate is Not Null
And d.Description Like 'LTC%'
And a.ExitDate <= @InDate
And g.SSLetterCode in ('J','K','L')
Group By b.FacilityNumber
) a
Right Join
(
Select b.FacilityNumber, Max(a.ExitDate) as ExitDate
From SurveyCitation e
Inner Join Survey a on (a.SurveyID = e.SurveyID)
Inner Join Facility b on (a.FacilityID = b.FacilityID)
Inner Join SurveyFormatCode c on (a.SurveyFormatCodeID = c.SurveyFormatCodeID)
Inner Join SurveyTypeCode d on (a.SurveyTypeCodeID = d.SurveyTypeCodeID)
Where a.VerbalResultDate is Not Null
And c.Description Like 'Standard%'
And d.Description Like 'LTC%'
And a.ExitDate <= @InDate
Group By b.FacilityNumber

) b on (a.FacilityNumber = b.FacilityNumber)
Where a.ExitDate >= b.ExitDate

) b on (a.FacilityNumber = b.FacilityNumber)
) a Right Join Facility b on (a.FacilityNumber = b.FacilityNumber)
Left Join Region c on (b.RegionID = c.RegionID)
Left Join Division d on (c.DivisionID = d.DivisionID)
Order By d.Description, c.Description, b.FacilityNumber

View 4 Replies View Related

Why Bcp Cannot Detect Temporary Table ?

Jul 22, 2006

hi, good day, i facing a problem


Code:


CREATE PROCEDURE [SP_TEST]

AS

SELECT *
INTO #TMP_CUSTOMER
FROM O_CUSTOMER

-------------------------------------------------------------------------
SELECT DISTINCT
COUNT(CUST_CD)

FROM
#TMP_CUSTOMER
GO




when i run in query analyzer , using "exec SP_TEST" , it work and display result

but when run
Exec Master..xp_CmdShell 'bcp "exec mydbtest..SP_TEST " queryout C:TEST.TXT -c -Slocalhost -Usa -Ppassword'

it give error "SQLState = S0002, NativeError = 208"
and show
Error = [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name '#TMP_CUSTOMER'.


thanks for guidance

View 4 Replies View Related

Drop #Temporary Table

Jul 21, 2004

I created the #Temporary table in MS SQL. Now i want to drop this #Temporary table, but i want to check first before i drop the this table. How to check the Temporary table exist or not in MS SQL?

View 4 Replies View Related

Temporary Table Overhead

Feb 10, 2005

Hope somebody can give me some advice .

We are having some issues with temporary tables (with # prefixes) within Stored Procedures.

When running a profile trace on them, the stored proc quite happily creates the temp # table (in fact several of them) but whenever it hits the first statement inserting data into one of them (and it doesn't matter which one), there is a 5-6 second delay.

By commenting out one and moving to the next piece of code, the same thing happens.

Following which, the rest of the Stored Prco runs fine and subsequent inserts into the # temp tables also run efficiently.

Is the stored proc getting recompiled perhaps ?

Any advice woul;d be appreciated.

we are running SQL Server 7.0, dont know whether that helps ?

View 1 Replies View Related

Using Temporary Table In A View

Jul 23, 2013

I am trying to create a view using to three queries below and I get the error message Views or functions are not allowed on temporary tables. Is there a way to do that or is there a way to combine the three queries below so I don't have to use a temp table so I create a view?

--Query 1

SELECT * INTO #MOVEMENTS
FROM [GW_DW].[dbo].[DimStatusHistory] d
WHERE TransferFromToProgram<>''
AND d.Status=12
;

--Query 2
SELECT DISTINCT

[Code] ....

View 6 Replies View Related

Timestamp To A Temporary Table?

Sep 11, 2013

how you code to get a timestamps to a temp table.ex. select date from clock where name='name' and nbr='10';I want this data to be in my temp date table..

View 1 Replies View Related

Global Temporary Table

Dec 23, 2006

Hi,
what im trying to do is to combine multiple SELECT staetment so that it could produce 1 dataset instead of 2(multiple). (fields and column are same, just different tblname). Okay, so im thinking of insert those into temp table.

1. select statement 1 > insert into #MyTemp
2. select statement 2 > i want to insert into #MyTemp too...

Problem is sql disallowed this. That's why im thinking of global temporary table, but dunno how to write tht :P.
Pliz help. Thanks in advance

View 7 Replies View Related

Global Temporary Table And SP

Jul 23, 2005

Hello all,I'm using SS2K on W2K.Brieffing: Many months ago, I created a stored procedure only used by thosewith admin rights in SS. Now, someone else (without admin rights) has to runit. I gave him rigth to execute the SP but, at the second and moreexecution, he got a error message concerning a temp table already existing(see further).The SP:------------------------------------------------------CREATE PROCEDURE MySP@Type INTDECLARE @strSQL AS VARCHAR(4000)IF EXISTS (SELECT table_name FROM tempdb.information_Schema.tables WHEREtable_name = '##MyTmpTable')DROP TABLE ##MyTmpTableSELECT @strSQL = 'SELECT MyField1, MyField2, MyField3 INTO ##MyTmpTable FROMMyTable'EXECUTE(@strSQL)IF @Type = 1SELECT MyField1FROM ##MyTmpTableELSE IF @Type = 2SELECT MyField2FROM ##MyTmpTableELSESELECT MyField3FROM ##MyTmpTableGO------------------------------------------------------The error I got on the second time the user run the sp is: "Table##MyTmpTable already exists." The front-end where this SP is run is A97.That's where I got this message. This SP looks like a simple SELECT queryfrom A97 users perspective.Please, do no argue about the way of doing the work done! It is simplifiedat most in order to make it short and easy to read. I have to use thecommand "EXECUTE(String)" and, because of this, I connot use a localtemporary table instead of a global one.I suspect non-admin user cannot drop global temporary table, but the errormessage makes me believe that this code line is not even run, as if thecondition "IF EXISTS(...)" return false even if the table actualy exists.Anybody can help about this? What should I do to solve this problem?Yannick

View 2 Replies View Related







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