Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Create Temp Table in Sql Server
Message
De
13/11/2014 14:39:41
Walter Meester
HoogkarspelPays-Bas
 
 
À
13/11/2014 11:28:10
Information générale
Forum:
Visual FoxPro
Catégorie:
Base de données, Tables, Vues, Index et syntaxe SQL
Versions des environnements
Visual FoxPro:
VFP 9 SP2
OS:
Windows Server 2012
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01610894
Message ID:
01610936
Vues:
50
>>We're trying to create temporary tables in MsSql that can be used in later queries and have come up with something strange.
>>TEXT TO lcSql TEXTMERGE NOSHOW PRETEXT 15
>>  SELECT fieldlist
>>    INTO #temp1
>>    FROM table JOIN table ON condition
>>         etc
>>    WHERE datefield BETWEEN <<date1>> AND <<date2>>
>>ENDTEXT
>>
>>?SQLEXEC(nHandle,lcSql)
>>
>>This returns 1.
>>
>>TEXT TO lcSql TEXTMERGE NOSHOW PRETEXT 15
>>  SELECT fieldlist
>>    INTO #temp2
>>    FROM #temp1 JOIN table ON condition
>>         etc
>>    WHERE datefield BETWEEN <<date1>> AND <<date2>>
>>ENDTEXT
>>
>>?SQLEXEC(nHandle,lcSql)
>>
>>This generates an error that #temp1 doesn't exist.
>>
>>It works if I change the query so that it creates ##Temp1
>>
>>I've only seen this happen when there are Date fields in the WHERE clause.
>>
>>I tried hard coding date values and got the same problem. I also tried using ? instead of the angle brackets without
>>getting a better result.
>>
>>We're puzzled about why the extra # makes such a difference and any information you can provide
>>will be a big help.
>>
>>Thanks.............Rich
>
>
>In reading the responses I think I wasn't clear enough in my explanation.
>
>I'm pretty sure I know the difference between the # and ## for the temp table name.
>(# is available only to the connection which created it
>## is available to any active connection
>both are removed when the connection which created it is disconnected.)
>
>
>The wierd thing (from our perspective) is that the single # works when we don't have any date comparisons in the WHERE clause. We've only seen this issue when selecting based on a date value. It doesn't seem to matter if we use textmerge, parameters, BETWEEN rather than < =, > =
>
>Just having the date value seems to mean # doesn't work but ## does.

What is the SQL profiler saying what is executed?
Précédent
Répondre
Fil
Voir

Click here to load this message in the networking platform