Bonjour,
Je travaille sur un projet Access et j'essaie de supprimer des
enregistrements
dans des tables Sql Server.
Dans Access, je peux écrire par exemple :
DELETE Table1.*
FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp
WHERE (((Table2.MonChamp2)="toto"))
Il semblerait que ça ne marche pas dans sql Server.
Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête
est impossible ?
Merci de votre aide.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe
Esaye comme ça
DELETE from TT.* FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp WHERE Table2.MonChamp2='toto'
"Paul" a écrit dans le message de news:4450db56$
Bonjour, Je travaille sur un projet Access et j'essaie de supprimer des enregistrements dans des tables Sql Server. Dans Access, je peux écrire par exemple : DELETE Table1.* FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp WHERE (((Table2.MonChamp2)="toto"))
Il semblerait que ça ne marche pas dans sql Server. Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête est impossible ? Merci de votre aide.
-- Paul
Esaye comme ça
DELETE from TT.*
FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp
WHERE Table2.MonChamp2='toto'
"Paul" <paul@nopub.com> a écrit dans le message de
news:4450db56$1@news.sncf.fr...
Bonjour,
Je travaille sur un projet Access et j'essaie de supprimer des
enregistrements
dans des tables Sql Server.
Dans Access, je peux écrire par exemple :
DELETE Table1.*
FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp
WHERE (((Table2.MonChamp2)="toto"))
Il semblerait que ça ne marche pas dans sql Server.
Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête
est impossible ?
Merci de votre aide.
DELETE from TT.* FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp WHERE Table2.MonChamp2='toto'
"Paul" a écrit dans le message de news:4450db56$
Bonjour, Je travaille sur un projet Access et j'essaie de supprimer des enregistrements dans des tables Sql Server. Dans Access, je peux écrire par exemple : DELETE Table1.* FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp WHERE (((Table2.MonChamp2)="toto"))
Il semblerait que ça ne marche pas dans sql Server. Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête est impossible ? Merci de votre aide.
-- Paul
SQLpro [MVP]
Paul a écrit :
Bonjour, Je travaille sur un projet Access et j'essaie de supprimer des enregistrements dans des tables Sql Server. Dans Access, je peux écrire par exemple :
> DELETE Table1.* > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien la norme sur le sujet... Donc beaucoup de requêtes écrites spécifiquemment pour Access par des informaticiens qui ne maîtrisent pas le langage SQL ne peuvent s'exécuter sur MS SQL Server...
En l'occurrence : 1) il est interdit d'utiliser un alias dans les tables cibles des ordres INSERT, UPDATE et DELETE. 2) le délimiteur de chaine de caractère est l'apostrophe et non le guillement.
La bonne syntaxe est donc :
DELETE Table1 FROM table1 INNER JOIN Table2 T2 ON Monchamp = T2.Monchamp WHERE T2.MonChamp2 = 'toto'
Il semblerait que ça ne marche pas dans sql Server. Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête est impossible ? Merci de votre aide.
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com, comme mes bouquins peuvent vous y aider !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Paul a écrit :
Bonjour,
Je travaille sur un projet Access et j'essaie de supprimer des
enregistrements
dans des tables Sql Server.
Dans Access, je peux écrire par exemple :
> DELETE Table1.*
> FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp
> WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL
est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien
la norme sur le sujet...
Donc beaucoup de requêtes écrites spécifiquemment pour Access par des
informaticiens qui ne maîtrisent pas le langage SQL ne peuvent
s'exécuter sur MS SQL Server...
En l'occurrence :
1) il est interdit d'utiliser un alias dans les tables cibles des ordres
INSERT, UPDATE et DELETE.
2) le délimiteur de chaine de caractère est l'apostrophe et non le
guillement.
La bonne syntaxe est donc :
DELETE Table1
FROM table1
INNER JOIN Table2 T2
ON Monchamp = T2.Monchamp
WHERE T2.MonChamp2 = 'toto'
Il semblerait que ça ne marche pas dans sql Server.
Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête
est impossible ?
Merci de votre aide.
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com,
comme mes bouquins peuvent vous y aider !
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Bonjour, Je travaille sur un projet Access et j'essaie de supprimer des enregistrements dans des tables Sql Server. Dans Access, je peux écrire par exemple :
> DELETE Table1.* > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien la norme sur le sujet... Donc beaucoup de requêtes écrites spécifiquemment pour Access par des informaticiens qui ne maîtrisent pas le langage SQL ne peuvent s'exécuter sur MS SQL Server...
En l'occurrence : 1) il est interdit d'utiliser un alias dans les tables cibles des ordres INSERT, UPDATE et DELETE. 2) le délimiteur de chaine de caractère est l'apostrophe et non le guillement.
La bonne syntaxe est donc :
DELETE Table1 FROM table1 INNER JOIN Table2 T2 ON Monchamp = T2.Monchamp WHERE T2.MonChamp2 = 'toto'
Il semblerait que ça ne marche pas dans sql Server. Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête est impossible ? Merci de votre aide.
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com, comme mes bouquins peuvent vous y aider !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Paul
Merci beaucoup, Christophe, ça marche ! (mais il faut mettre DELETE FROM TT au lieu de DELETE FROM TT.*)
-- Paul
"Christophe" a écrit
Essaye comme ça
DELETE from TT.* FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp WHERE Table2.MonChamp2='toto'
"Paul" a écrit dans le message de news:4450db56$ > Bonjour, > Je travaille sur un projet Access et j'essaie de supprimer des > enregistrements > dans des tables Sql Server. > Dans Access, je peux écrire par exemple : > DELETE Table1.* > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > WHERE (((Table2.MonChamp2)="toto")) > > Il semblerait que ça ne marche pas dans sql Server. > Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
> est impossible ? > Merci de votre aide. > > -- > Paul
Merci beaucoup, Christophe, ça marche !
(mais il faut mettre DELETE FROM TT au lieu de DELETE FROM TT.*)
--
Paul
"Christophe" a écrit
Essaye comme ça
DELETE from TT.*
FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp
WHERE Table2.MonChamp2='toto'
"Paul" <paul@nopub.com> a écrit dans le message de
news:4450db56$1@news.sncf.fr...
> Bonjour,
> Je travaille sur un projet Access et j'essaie de supprimer des
> enregistrements
> dans des tables Sql Server.
> Dans Access, je peux écrire par exemple :
> DELETE Table1.*
> FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp
> WHERE (((Table2.MonChamp2)="toto"))
>
> Il semblerait que ça ne marche pas dans sql Server.
> Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
> est impossible ?
> Merci de votre aide.
>
> --
> Paul
Merci beaucoup, Christophe, ça marche ! (mais il faut mettre DELETE FROM TT au lieu de DELETE FROM TT.*)
-- Paul
"Christophe" a écrit
Essaye comme ça
DELETE from TT.* FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp WHERE Table2.MonChamp2='toto'
"Paul" a écrit dans le message de news:4450db56$ > Bonjour, > Je travaille sur un projet Access et j'essaie de supprimer des > enregistrements > dans des tables Sql Server. > Dans Access, je peux écrire par exemple : > DELETE Table1.* > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > WHERE (((Table2.MonChamp2)="toto")) > > Il semblerait que ça ne marche pas dans sql Server. > Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
> est impossible ? > Merci de votre aide. > > -- > Paul
Christophe
Tiens c'est drole j'aurais juré que les alias ete le principe à utiliser justement ! comme quoi ! ;)
"SQLpro [MVP]" a écrit dans le message de news:O7B1%
Paul a écrit : > Bonjour, > Je travaille sur un projet Access et j'essaie de supprimer des > enregistrements > dans des tables Sql Server. > Dans Access, je peux écrire par exemple : > DELETE Table1.* > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien la norme sur le sujet... Donc beaucoup de requêtes écrites spécifiquemment pour Access par des informaticiens qui ne maîtrisent pas le langage SQL ne peuvent s'exécuter sur MS SQL Server...
En l'occurrence : 1) il est interdit d'utiliser un alias dans les tables cibles des ordres INSERT, UPDATE et DELETE. 2) le délimiteur de chaine de caractère est l'apostrophe et non le guillement.
La bonne syntaxe est donc :
DELETE Table1 FROM table1 INNER JOIN Table2 T2 ON Monchamp = T2.Monchamp WHERE T2.MonChamp2 = 'toto'
> > Il semblerait que ça ne marche pas dans sql Server. > Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
> est impossible ? > Merci de votre aide. >
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com, comme mes bouquins peuvent vous y aider !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Tiens c'est drole j'aurais juré que les alias ete le principe à utiliser
justement !
comme quoi !
;)
"SQLpro [MVP]" <brouardf@club-internet.fr> a écrit dans le message de
news:O7B1%23ZpaGHA.3328@TK2MSFTNGP02.phx.gbl...
Paul a écrit :
> Bonjour,
> Je travaille sur un projet Access et j'essaie de supprimer des
> enregistrements
> dans des tables Sql Server.
> Dans Access, je peux écrire par exemple :
> DELETE Table1.*
> FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp
> WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL
est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien
la norme sur le sujet...
Donc beaucoup de requêtes écrites spécifiquemment pour Access par des
informaticiens qui ne maîtrisent pas le langage SQL ne peuvent
s'exécuter sur MS SQL Server...
En l'occurrence :
1) il est interdit d'utiliser un alias dans les tables cibles des ordres
INSERT, UPDATE et DELETE.
2) le délimiteur de chaine de caractère est l'apostrophe et non le
guillement.
La bonne syntaxe est donc :
DELETE Table1
FROM table1
INNER JOIN Table2 T2
ON Monchamp = T2.Monchamp
WHERE T2.MonChamp2 = 'toto'
>
> Il semblerait que ça ne marche pas dans sql Server.
> Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
> est impossible ?
> Merci de votre aide.
>
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com,
comme mes bouquins peuvent vous y aider !
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Tiens c'est drole j'aurais juré que les alias ete le principe à utiliser justement ! comme quoi ! ;)
"SQLpro [MVP]" a écrit dans le message de news:O7B1%
Paul a écrit : > Bonjour, > Je travaille sur un projet Access et j'essaie de supprimer des > enregistrements > dans des tables Sql Server. > Dans Access, je peux écrire par exemple : > DELETE Table1.* > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien la norme sur le sujet... Donc beaucoup de requêtes écrites spécifiquemment pour Access par des informaticiens qui ne maîtrisent pas le langage SQL ne peuvent s'exécuter sur MS SQL Server...
En l'occurrence : 1) il est interdit d'utiliser un alias dans les tables cibles des ordres INSERT, UPDATE et DELETE. 2) le délimiteur de chaine de caractère est l'apostrophe et non le guillement.
La bonne syntaxe est donc :
DELETE Table1 FROM table1 INNER JOIN Table2 T2 ON Monchamp = T2.Monchamp WHERE T2.MonChamp2 = 'toto'
> > Il semblerait que ça ne marche pas dans sql Server. > Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
> est impossible ? > Merci de votre aide. >
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com, comme mes bouquins peuvent vous y aider !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Christophe
Oui excuse j'ai pas bien relus mon script Sorry
"Paul" a écrit dans le message de news:4451d240$
Merci beaucoup, Christophe, ça marche ! (mais il faut mettre DELETE FROM TT au lieu de DELETE FROM TT.*)
-- Paul
"Christophe" a écrit > Essaye comme ça > > DELETE from TT.* > FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp > WHERE Table2.MonChamp2='toto' > > > > > > "Paul" a écrit dans le message de > news:4450db56$ > > Bonjour, > > Je travaille sur un projet Access et j'essaie de supprimer des > > enregistrements > > dans des tables Sql Server. > > Dans Access, je peux écrire par exemple : > > DELETE Table1.* > > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > > WHERE (((Table2.MonChamp2)="toto")) > > > > Il semblerait que ça ne marche pas dans sql Server. > > Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête > > est impossible ? > > Merci de votre aide. > > > > -- > > Paul
Oui excuse j'ai pas bien relus mon script
Sorry
"Paul" <paul@nopub.com> a écrit dans le message de
news:4451d240$1@news.sncf.fr...
Merci beaucoup, Christophe, ça marche !
(mais il faut mettre DELETE FROM TT au lieu de DELETE FROM TT.*)
--
Paul
"Christophe" a écrit
> Essaye comme ça
>
> DELETE from TT.*
> FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp
> WHERE Table2.MonChamp2='toto'
>
>
>
>
>
> "Paul" <paul@nopub.com> a écrit dans le message de
> news:4450db56$1@news.sncf.fr...
> > Bonjour,
> > Je travaille sur un projet Access et j'essaie de supprimer des
> > enregistrements
> > dans des tables Sql Server.
> > Dans Access, je peux écrire par exemple :
> > DELETE Table1.*
> > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp
> > WHERE (((Table2.MonChamp2)="toto"))
> >
> > Il semblerait que ça ne marche pas dans sql Server.
> > Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
> > est impossible ?
> > Merci de votre aide.
> >
> > --
> > Paul
Merci beaucoup, Christophe, ça marche ! (mais il faut mettre DELETE FROM TT au lieu de DELETE FROM TT.*)
-- Paul
"Christophe" a écrit > Essaye comme ça > > DELETE from TT.* > FROM table1 as TT INNER JOIN Table2 ON TT.Monchamp = Table2.Monchamp > WHERE Table2.MonChamp2='toto' > > > > > > "Paul" a écrit dans le message de > news:4450db56$ > > Bonjour, > > Je travaille sur un projet Access et j'essaie de supprimer des > > enregistrements > > dans des tables Sql Server. > > Dans Access, je peux écrire par exemple : > > DELETE Table1.* > > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > > WHERE (((Table2.MonChamp2)="toto")) > > > > Il semblerait que ça ne marche pas dans sql Server. > > Quelle serait la syntaxe exacte ou comment procéder si ce genre de requête > > est impossible ? > > Merci de votre aide. > > > > -- > > Paul
SQLpro [MVP]
Christophe a écrit :
Tiens c'est drole j'aurais juré que les alias ete le principe à utiliser justement ! comme quoi !
JAMAIS dans les ordres INSERT UPDATE ou DELETE pour la table cible.
A +
;)
"SQLpro [MVP]" a écrit dans le message de news:O7B1%
Paul a écrit :
Bonjour, Je travaille sur un projet Access et j'essaie de supprimer des enregistrements dans des tables Sql Server. Dans Access, je peux écrire par exemple :
> DELETE Table1.* > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien la norme sur le sujet... Donc beaucoup de requêtes écrites spécifiquemment pour Access par des informaticiens qui ne maîtrisent pas le langage SQL ne peuvent s'exécuter sur MS SQL Server...
En l'occurrence : 1) il est interdit d'utiliser un alias dans les tables cibles des ordres INSERT, UPDATE et DELETE. 2) le délimiteur de chaine de caractère est l'apostrophe et non le guillement.
La bonne syntaxe est donc :
DELETE Table1 FROM table1 INNER JOIN Table2 T2 ON Monchamp = T2.Monchamp WHERE T2.MonChamp2 = 'toto'
Il semblerait que ça ne marche pas dans sql Server. Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
est impossible ? Merci de votre aide.
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com, comme mes bouquins peuvent vous y aider !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
Christophe a écrit :
Tiens c'est drole j'aurais juré que les alias ete le principe à utiliser
justement !
comme quoi !
JAMAIS dans les ordres INSERT UPDATE ou DELETE pour la table cible.
A +
;)
"SQLpro [MVP]" <brouardf@club-internet.fr> a écrit dans le message de
news:O7B1%23ZpaGHA.3328@TK2MSFTNGP02.phx.gbl...
Paul a écrit :
Bonjour,
Je travaille sur un projet Access et j'essaie de supprimer des
enregistrements
dans des tables Sql Server.
Dans Access, je peux écrire par exemple :
> DELETE Table1.*
> FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp
> WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL
est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien
la norme sur le sujet...
Donc beaucoup de requêtes écrites spécifiquemment pour Access par des
informaticiens qui ne maîtrisent pas le langage SQL ne peuvent
s'exécuter sur MS SQL Server...
En l'occurrence :
1) il est interdit d'utiliser un alias dans les tables cibles des ordres
INSERT, UPDATE et DELETE.
2) le délimiteur de chaine de caractère est l'apostrophe et non le
guillement.
La bonne syntaxe est donc :
DELETE Table1
FROM table1
INNER JOIN Table2 T2
ON Monchamp = T2.Monchamp
WHERE T2.MonChamp2 = 'toto'
Il semblerait que ça ne marche pas dans sql Server.
Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
est impossible ?
Merci de votre aide.
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com,
comme mes bouquins peuvent vous y aider !
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Tiens c'est drole j'aurais juré que les alias ete le principe à utiliser justement ! comme quoi !
JAMAIS dans les ordres INSERT UPDATE ou DELETE pour la table cible.
A +
;)
"SQLpro [MVP]" a écrit dans le message de news:O7B1%
Paul a écrit :
Bonjour, Je travaille sur un projet Access et j'essaie de supprimer des enregistrements dans des tables Sql Server. Dans Access, je peux écrire par exemple :
> DELETE Table1.* > FROM table1 INNER JOIN Table2 ON Table1.Monchamp = Table2.Monchamp > WHERE (((Table2.MonChamp2)="toto"))
Access utilise un SQL qui est très loin d'être normatif. Le langage SQL est normalisé depuis plus de 20 ans... Or SQL Server respecte assez bien la norme sur le sujet... Donc beaucoup de requêtes écrites spécifiquemment pour Access par des informaticiens qui ne maîtrisent pas le langage SQL ne peuvent s'exécuter sur MS SQL Server...
En l'occurrence : 1) il est interdit d'utiliser un alias dans les tables cibles des ordres INSERT, UPDATE et DELETE. 2) le délimiteur de chaine de caractère est l'apostrophe et non le guillement.
La bonne syntaxe est donc :
DELETE Table1 FROM table1 INNER JOIN Table2 T2 ON Monchamp = T2.Monchamp WHERE T2.MonChamp2 = 'toto'
Il semblerait que ça ne marche pas dans sql Server. Quelle serait la syntaxe exacte ou comment procéder si ce genre de
requête
est impossible ? Merci de votre aide.
Pour maitriser le langage SQL, mon site http://sqlpro.developpez.com, comme mes bouquins peuvent vous y aider !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation ********************* http://www.datasapiens.com ***********************