Remplacer l'instruction GO par une instruction SQL

Signaler
Messages postés
89
Date d'inscription
jeudi 17 mars 2005
Statut
Membre
Dernière intervention
26 avril 2012
-
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
-
Quelle est l'instruction SQL réalisant la même action que les "GO" que l'on trouve souvent dans les scripts SQL.

J'ai tenté de les remplacer par des points virgules mais cela ne donne pas de meilleur résultat.

GO, n'est pas une instruction SQL, mais juste un séparateur dans un batch.

GO signale aux utilitaires SQL Server qu'ils doivent envoyer le lot d'instructions Transact-SQL en cours au serveur SQL. Le lot d'instructions en cours se compose de toutes les transactions saisies depuis la dernière commande GO ou depuis le début de la session ou du script approprié s'il s'agit de la première commande GO.

Merci d'avance
A voir également:

5 réponses

Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
Il n'y en a pas :o)
C'est une comande propre à SQLServeur.
Tu veux utiliser quel SGBD ?

Sans ca, essaye de faire des transactions, et de faire un commit a la place de ton go....
Messages postés
89
Date d'inscription
jeudi 17 mars 2005
Statut
Membre
Dernière intervention
26 avril 2012

A la pace de mon go il faut donc que je démarre une transaction et que je mette un commit ???
Il n'y a aucune autre solution ???
Messages postés
89
Date d'inscription
jeudi 17 mars 2005
Statut
Membre
Dernière intervention
26 avril 2012

Je vous envoie ma requête à tout hasard si vous trouviez une erreur ou modifier 2-3 instructions sans pour autant l'optimiser :

/*


mardi 7 février 2006 17:31:45


Utilisateur : sa


Serveur : SRVCOMPTA


Base de données : Transport


Application : MS SQLEM - Data Tools


*/





BEGIN TRANSACTION
SET QUOTED_IDENTIFIER ON
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
SET ARITHABORT ON
SET NUMERIC_ROUNDABORT OFF
SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
COMMIT
BEGIN TRANSACTION
CREATE TABLE dbo.Tmp_TPEMBALL
(
EMBALLC char(10) NOT NULL,
EMBALLL char(30) NOT NULL,
PACHATU decimal(7, 2) NOT NULL,
UNITESC char(3) NOT NULL,
GESSTOC char(1) NOT NULL,
CONSIGC char(1) NOT NULL,
RECQTEC char(1) NULL,
PVENTEU decimal(7, 2) NOT NULL,
FOURNIA char(15) NOT NULL,
FOURNII decimal(6, 0) NULL,
GESTIOA char(15) NULL,
GESTIOI decimal(6, 0) NULL,
TRSGSTC char(1) NULL,
LONGUEG decimal(5, 2) NULL,
LARGEUG decimal(5, 2) NULL,
HAUTEUG decimal(5, 2) NULL,
POIDS0P decimal(8, 3) NULL,
PDSSUPP decimal(8, 3) NULL,
VOLSUPV decimal(8, 3) NULL,
COLSUPQ decimal(5, 0) NULL,
DEVISEC char(3) NOT NULL,
CPQUAIU decimal(7, 2) NOT NULL,
EMBARDC char(2) NOT NULL,
DERMAJC char(10) NULL,
DERMAJD datetime NULL,
CREATIC char(10) NULL,
CREATID datetime NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.TPEMBALL)
EXEC('INSERT INTO dbo.Tmp_TPEMBALL (EMBALLC, EMBALLL, PACHATU, UNITESC, GESSTOC, CONSIGC, PVENTEU, FOURNIA, FOURNII, GESTIOA, GESTIOI, TRSGSTC, LONGUEG, LARGEUG, HAUTEUG, POIDS0P, PDSSUPP, VOLSUPV, COLSUPQ, DEVISEC, CPQUAIU, EMBARDC, DERMAJC, DERMAJD, CREATIC, CREATID)
SELECT EMBALLC, EMBALLL, PACHATU, UNITESC, GESSTOC, CONSIGC, PVENTEU, FOURNIA, FOURNII, GESTIOA, GESTIOI, TRSGSTC, LONGUEG, LARGEUG, HAUTEUG, POIDS0P, PDSSUPP, VOLSUPV, COLSUPQ, DEVISEC, CPQUAIU, EMBARDC, DERMAJC, DERMAJD, CREATIC, CREATID FROM dbo.TPEMBALL TABLOCKX')
GO
DROP TABLE dbo.TPEMBALL
GO
EXECUTE sp_rename N'dbo.Tmp_TPEMBALL', N'TPEMBALL', 'OBJECT'
GO
UPDATE dbo.TPEMBALL SET RECQTEC = 'O'
GO
CREATE TABLE dbo.Tmp_TPEMBALL
(
EMBALLC char(10) NOT NULL,
EMBALLL char(30) NOT NULL,
PACHATU decimal(7, 2) NOT NULL,
UNITESC char(3) NOT NULL,
GESSTOC char(1) NOT NULL,
CONSIGC char(1) NOT NULL,
RECQTEC char(1) NOT NULL,
PVENTEU decimal(7, 2) NOT NULL,
FOURNIA char(15) NOT NULL,
FOURNII decimal(6, 0) NULL,
GESTIOA char(15) NULL,
GESTIOI decimal(6, 0) NULL,
TRSGSTC char(1) NULL,
LONGUEG decimal(5, 2) NULL,
LARGEUG decimal(5, 2) NULL,
HAUTEUG decimal(5, 2) NULL,
POIDS0P decimal(8, 3) NULL,
PDSSUPP decimal(8, 3) NULL,
VOLSUPV decimal(8, 3) NULL,
COLSUPQ decimal(5, 0) NULL,
DEVISEC char(3) NOT NULL,
CPQUAIU decimal(7, 2) NOT NULL,
EMBARDC char(2) NOT NULL,
DERMAJC char(10) NULL,
DERMAJD datetime NULL,
CREATIC char(10) NULL,
CREATID datetime NULL
) ON [PRIMARY]
GO
IF EXISTS(SELECT * FROM dbo.TPEMBALL)
EXEC('INSERT INTO dbo.Tmp_TPEMBALL (EMBALLC, EMBALLL, PACHATU, UNITESC, GESSTOC, CONSIGC, RECQTEC, PVENTEU, FOURNIA, FOURNII, GESTIOA, GESTIOI, TRSGSTC, LONGUEG, LARGEUG, HAUTEUG, POIDS0P, PDSSUPP, VOLSUPV, COLSUPQ, DEVISEC, CPQUAIU, EMBARDC, DERMAJC, DERMAJD, CREATIC, CREATID)
SELECT EMBALLC, EMBALLL, PACHATU, UNITESC, GESSTOC, CONSIGC, RECQTEC, PVENTEU, FOURNIA, FOURNII, GESTIOA, GESTIOI, TRSGSTC, LONGUEG, LARGEUG, HAUTEUG, POIDS0P, PDSSUPP, VOLSUPV, COLSUPQ, DEVISEC, CPQUAIU, EMBARDC, DERMAJC, DERMAJD, CREATIC, CREATID FROM dbo.TPEMBALL TABLOCKX')
GO
DROP TABLE dbo.TPEMBALL
GO
EXECUTE sp_rename N'dbo.Tmp_TPEMBALL', N'TPEMBALL', 'OBJECT'
GO
COMMIT
Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
Ough !
Mis à part mon incompréhension totale sur le but de tout ca, tu utilises quel SGBD ?
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
mindiell, visiblement c'est du SQL serevr (MS SQLEM = Microsoft SQL Entreprise Manager)

sinon Sytchev3, je ne comprend pas ta question, quel est le but.

GO est une instruction SQL interpretée par SQL server.

tu peux mettre un GO dans une requete SQL que tu envoie a ton serveur,


cela dit, le GO marche quand il le veut, et il y aussi des parametres a regler au niveau de ton client surement pour que ca foncitonne correctement