C# Select Into Explication / Tables Temporaires
Basé sur le tutoriel sur SQL des Tables Temporaires, il devrait être OK pour créer une table temporaire en utilisant SELECT * INTO #tempTable FROM tableA
mais c'est en me jetant SQLException
quand j'essaie de SELECT * FROM #tempTable
dire que Invalid object name '#tempTable'
. Je peux savoir quelle est la bonne façon d'utiliser une table temporaire dans C#
?
string sql = "SELECT * INTO ##tempTable FROM (SELECT * FROM tableA)";
using (var command = new SqlCommand(sql, connection))
{
string sqlNew = "SELECT * FROM ##tempTable";
using (var command2 = new SqlCommand(sqlNew, connection))
{
using (var reader = command2.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader["column1"].ToString());
}
Console.ReadLine();
}
}
}
Mon Objectif est tryint à l'aide de données extraites de sqlVar
et les insérer dans un tempTable et d'effectuer une opération sur elle. Très apprécié si il y a un exemple de code sur la façon de les intégrer le code dans le code ci-dessus. Merci.
- Les tables temporaires durant la session qui les crée.
- Je suis désolé, que je ne pouvais pas comprendre comment résoudre mon problème avec votre description.
- Pourquoi faites-vous cela dans une table temporaire? quelles sont les actions que vous devez effectuer sur les données? pouvez-vous faire cela dans le code C#?
- J'ai besoin de les stocker dans un tempTable de sorte que dans mon autre méthode je peux accéder à la post-traitées table à nouveau.
- Si vous créez une classe avec les champs que vous allez travailler, vous pouvez l'utiliser pour le traitement et la garder en mémoire jusqu'à ce que vous avez fini avec elle, puis stocker le retour à la DB, ou ce que vous voulez faire avec elle. Il est difficile d'être plus sepcific sans savoir ce que vous devez faire avec les données.
- Je veux juste savoir comment table temporaire travaille en C#. S'il vous plaît dites-moi comment faire pour créer un tempTable en C# et il suffit de sélectionner les données à partir d'eux?
- je pense que vous avez répondu à sa question.
- Temp tables SQL concept spécifique. Ainsi, dans une procédure stockée, par exemple, vous pouvez stocker un sous-ensemble de données dans une table temporaire, le travail avec que, dans la requête, puis, simple exemple ici : devzone.advantagedatabase.com/dz/webhelp/Advantage7.1/adssql/...
- Vous n'êtes pas exécuter le code SQL qui sélectionne dans la table temporaire, de sorte qu'il n'est jamais créé! Voir ma réponse.
Vous devez vous connecter pour publier un commentaire.
Mais pourquoi vous avez besoin de temp table à côté de SQL server..
1) si vous souhaitez effectuer l'opération sur le C#, côté juste à prendre des données dans
DATASET
au lieu deDATAREADER
.. et2) si vous devez effectuer une opération sur SQL côté puis de créer un
stored procedure
à SQL server .. dans lestored procedure create #table
et l'utiliser ..3) et vous ne souhaitez pas créer de
DATASET
ensuite, vous pouvez prendre des donnéesLIST
et effectuer l'opération sur le C#, côtéVous n'êtes pas l'exécution de la première commande à tous, donc la
SELECT INTO
n'a pas été exécuté, de sorte que la table temporaire n'est pas créé, de sorte que vous obtenez un message d'erreur à propos de la table n'existe pas.Le code devrait lire:
1-SELECT * INTO # tempTable DE la tableA (temp local)ou
2-SELECT * INTO ## tempTable DE la tableA (global temp)puis
De tables temporaires locales ne sont disponibles que pour la connexion en cours pour l'utilisateur; et ils sont automatiquement supprimés lorsque l'utilisateur se déconnecte d'instances. Nom de table temporaire locale est regardé avec dièse ("#") signe.
Mondial De La Table Temporaire
Tables Temporaires globales nom commence par un double dièse ("##"). Une fois ce tableau a été créé par une connexion, comme une table permanente il est alors disponible pour tous les utilisateurs de toute connexion. Il ne peut être supprimé une fois que toutes les connexions ont été fermés.
À la fois, les tables Temporaires sont stockés dans le Dossier Temporaire de la base de données tempdb. Chaque fois que nous créons une table temporaire, il va vers un dossier Temporaire de la base de données tempdb.
temp table dans SQL DB
Changer votre table temp de
#tempTable
à##tempTable
.À l'aide de
##
signifie un mondial de la table temporaire qui reste autour. Vous aurez besoin de déplacer une fois que vous avez terminé votre tâche.Je pense que votre réponse est dans le commentaire:
Tables temporaires durant la session qui les crée.
Si vous voulez à réellement obtenir les données dont vous disposez pour effectuer une instruction SELECT à partir de cette table temporaire au sein de la même portée.
Une chose de plus:
Je ne vois pas l'exécution de la
var command
, il vous manque cette ligne:Mais l'absence de la ligne n'est pas la raison de la mise en œuvre est mal..
Invalid object name '#tempTable'
. Toutes les opérations sont dans la même portéecommand2.ExecuteReader()
? Merci de me montrer comment faire, s'il vous plaîtIncorrect syntax near ')'.