Question
Recherche valeur table SQL server
- gouzerh
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 12 ans 1 mois #16954
par gouzerh
Recherche valeur table SQL server a été créé par gouzerh
Salut !
J'ai une base de données SQL server. J'arrive à vérifier l'existence d'une table avec \"IF OBJECT_ID\". Mais maintenant je chercher à vérifier l'existence d'une certaine valeur dans une table, pour faire une certaine commande sql si elle existe.
Et la impossible de trouver comment faire !
Après plusieurs heures de recherches je m'en remet à vous
J'ai une base de données SQL server. J'arrive à vérifier l'existence d'une table avec \"IF OBJECT_ID\". Mais maintenant je chercher à vérifier l'existence d'une certaine valeur dans une table, pour faire une certaine commande sql si elle existe.
Et la impossible de trouver comment faire !
Après plusieurs heures de recherches je m'en remet à vous
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 1 mois #16958
par Philippe
Réponse de Philippe sur le sujet Re:Recherche valeur table SQL server
et bien c'est pas du powershell mais du sql
mais bon ....
avec un select where sur la table
exemple :
[code:1]select * from Table1 where nomduchamp like '%trouve%'[/code:1]
ici je cherche 'trouve' dans le champ 'nomduchamp ' de la table 'Table1'
ca repond a ta question ?
mais bon ....
avec un select where sur la table
exemple :
[code:1]select * from Table1 where nomduchamp like '%trouve%'[/code:1]
ici je cherche 'trouve' dans le champ 'nomduchamp ' de la table 'Table1'
ca repond a ta question ?
Connexion ou Créer un compte pour participer à la conversation.
- gouzerh
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 12 ans 1 mois #16965
par gouzerh
Réponse de gouzerh sur le sujet Re:Recherche valeur table SQL server
Oui je sais bien mais le problème est autre. Enfait je dois trouver si une valeur est présente et si elle ne les pas faire un insert. J'ai éssayé pas mal de requete sql comme IF EXISTS mais j'arrive à rien.
Je me demande comment lire dans powershell le résultat d'une requete pour pouvoir faire une action après.
Je me demande comment lire dans powershell le résultat d'une requete pour pouvoir faire une action après.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 12 ans 1 mois #16967
par Philippe
Réponse de Philippe sur le sujet Re:Recherche valeur table SQL server
salut Seriale
un exemple de récupération de données sql dans powershell
[code:1]$Conn = new-object system.data.sqlclient.sqlconnection
# Connexion avec l'authentification Windows
$Conn.connectionstring = \"Server=srv-sql\instance;database=admin;Integrated Security = SSPI;\"
# Ouvre la connexion
$Conn.Open()
# On interroge une table de SQL Server
$Requete = \"select top 1 * from orders where o_etat = 0\"
$cmd = New-object system.data.sqlclient.SqlCommand
$cmd.connection = $conn
$cmd.commandtext = $Requete
# Exécute la requête et retourne le nombre de lignes
$z = $cmd.Executenonquery()
$DataAdapter = new-object System.Data.SqlClient.SQLDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
$lignes = $DataAdapter.Fill($DataSet)
# Récupére les données en XML
#$DataSet.GetXML()
# ou bien en texte
#$DataSet.Tables[0].Rows
if ($lignes -gt 0) {
$id = [string]$DataSet.Tables[0].rows[0].id
}[/code:1]
$lignes indique le nombre de ligne lu
$DataSet contient les données lu
$id aurra la valeur du champ id de la table orders (premieres table de $DataSet.Tables, premier champ de $DataSet.Tables[0].rows)
c'est une des façons de lire et utilisé $DataSet
un exemple de récupération de données sql dans powershell
[code:1]$Conn = new-object system.data.sqlclient.sqlconnection
# Connexion avec l'authentification Windows
$Conn.connectionstring = \"Server=srv-sql\instance;database=admin;Integrated Security = SSPI;\"
# Ouvre la connexion
$Conn.Open()
# On interroge une table de SQL Server
$Requete = \"select top 1 * from orders where o_etat = 0\"
$cmd = New-object system.data.sqlclient.SqlCommand
$cmd.connection = $conn
$cmd.commandtext = $Requete
# Exécute la requête et retourne le nombre de lignes
$z = $cmd.Executenonquery()
$DataAdapter = new-object System.Data.SqlClient.SQLDataAdapter($cmd)
$DataSet = new-object System.Data.DataSet
$lignes = $DataAdapter.Fill($DataSet)
# Récupére les données en XML
#$DataSet.GetXML()
# ou bien en texte
#$DataSet.Tables[0].Rows
if ($lignes -gt 0) {
$id = [string]$DataSet.Tables[0].rows[0].id
}[/code:1]
$lignes indique le nombre de ligne lu
$DataSet contient les données lu
$id aurra la valeur du champ id de la table orders (premieres table de $DataSet.Tables, premier champ de $DataSet.Tables[0].rows)
c'est une des façons de lire et utilisé $DataSet
Connexion ou Créer un compte pour participer à la conversation.
- gouzerh
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 12 ans 1 mois #16969
par gouzerh
Réponse de gouzerh sur le sujet Re:Recherche valeur table SQL server
Merci ! J'avais éssayé quelque chose dans cet esprit je crois. Je n'y arrive toujours pas , je dois mal m'y prendre. Avec ce code il me rajoute bien ce que je veux dans une table. Mais le but étant qu'il n'y est pas de doublons, donc si je le relance il me rajoute uniquement les valeurs qui ne sont pas égales à celles présentes dans la table. Mais il rajoute à chaque fois.
[code:1]########################
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = “select * from logiciels where nomLogiciel = '$_.DisplayName' AND versionLogiciel = '$_.DisplayVersion'”
$SqlCmd.Connection = $SqlConnection
$SqlCmd.ExecuteNonQuery()
$DataAdapter = new-object System.Data.SqlClient.SQLDataAdapter($SqlCmd)
$DataSet = new-object System.Data.DataSet
$lignes = $DataAdapter.Fill($DataSet)
########################
if ($lignes -gt 0) {
$id = [string]$DataSet.Tables[0].rows[0].id
}
if($id -ne '$_.DisplayName'){
$qSQL = $Soft| foreach {
if ($_.DisplayName) {
\"INSERT INTO logiciels VALUES ('{0}', '{1}' )\" -f $($_.DisplayName -replace \"'\",\" \"«»), $($_.DisplayVersion -replace \"'\",\" \"«»)
}
else{}
}
}
# Création d'object pour la connexion à SQL server
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
# Passe la commande SQL dans une variable d'éxécution
$SqlCmd.CommandText = $qSQL
# Connexion à la base de données
$SqlCmd.Connection = $SqlConnection
# Exécution de la commande SQL
$SqlCmd.ExecuteNonQuery()[/code:1]
[code:1]########################
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = “select * from logiciels where nomLogiciel = '$_.DisplayName' AND versionLogiciel = '$_.DisplayVersion'”
$SqlCmd.Connection = $SqlConnection
$SqlCmd.ExecuteNonQuery()
$DataAdapter = new-object System.Data.SqlClient.SQLDataAdapter($SqlCmd)
$DataSet = new-object System.Data.DataSet
$lignes = $DataAdapter.Fill($DataSet)
########################
if ($lignes -gt 0) {
$id = [string]$DataSet.Tables[0].rows[0].id
}
if($id -ne '$_.DisplayName'){
$qSQL = $Soft| foreach {
if ($_.DisplayName) {
\"INSERT INTO logiciels VALUES ('{0}', '{1}' )\" -f $($_.DisplayName -replace \"'\",\" \"«»), $($_.DisplayVersion -replace \"'\",\" \"«»)
}
else{}
}
}
# Création d'object pour la connexion à SQL server
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand;
# Passe la commande SQL dans une variable d'éxécution
$SqlCmd.CommandText = $qSQL
# Connexion à la base de données
$SqlCmd.Connection = $SqlConnection
# Exécution de la commande SQL
$SqlCmd.ExecuteNonQuery()[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- SiSMik
- Hors Ligne
- Membre platinium
-
Réduire
Plus d'informations
- Messages : 492
- Remerciements reçus 0
il y a 12 ans 1 mois #16988
par SiSMik
Réponse de SiSMik sur le sujet Re:Recherche valeur table SQL server
Bonjour,
Ce qu'il te manque c'est la gestion des valeurs déjà présentes dans ta table.
Pour vérifier ceci, tu peux utiliser la clause NOT EXIST
Un exemple en dessous.
[code:1]
INSERT INTO
matable
( maclefprimaire
, maclefetrangere
, monattribut
)
SELECT 1
, 1
, 'valeurtexte'
FROM tablebidon
WHERE NOT EXISTS
( SELECT 0
FROM matable
WHERE maclefprimaire = 1
)
;
[/code:1]
Bonne soirée
Ce qu'il te manque c'est la gestion des valeurs déjà présentes dans ta table.
Pour vérifier ceci, tu peux utiliser la clause NOT EXIST
Un exemple en dessous.
[code:1]
INSERT INTO
matable
( maclefprimaire
, maclefetrangere
, monattribut
)
SELECT 1
, 1
, 'valeurtexte'
FROM tablebidon
WHERE NOT EXISTS
( SELECT 0
FROM matable
WHERE maclefprimaire = 1
)
;
[/code:1]
Bonne soirée
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.052 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Recherche valeur table SQL server