Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pb script pour procedure stockée

4 réponses
Avatar
Chris
bonjour,
j'utilise yukon express 2005 pour generer toutes mes procedures sous
forme de script grâce à l'assistant. En fait j'ai écrit environ 60 SP
mais maintenant je souhaite les mettre sous forme de script pour les
conserver. Mon probleme vient du fait qd il les genere automatiquement
le script SQL il me met des ' n'importe ou du coup yukon prend la moitie
de la SP pour un commentaire.

Savez comment je peux faire pour resoudre ce bug tres ennuyeux ??

merci

4 réponses

Avatar
Chris
Chris a écrit :
bonjour,
j'utilise yukon express 2005 pour generer toutes mes procedures sous
forme de script grâce à l'assistant. En fait j'ai écrit environ 60 SP
mais maintenant je souhaite les mettre sous forme de script pour les
conserver. Mon probleme vient du fait qd il les genere automatiquement
le script SQL il me met des ' n'importe ou du coup yukon prend la moitie
de la SP pour un commentaire.

Savez comment je peux faire pour resoudre ce bug tres ennuyeux ??

merci




voici un exemple de ce que l'assistant genere

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[sp_s_MO]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[sp_s_MO]
@ID int
AS
BEGIN
SET NOCOUNT ON;

if @ID = 0 --si on veut la liste des MO

SELECT [Id_MO] as Code ,[Libelle], [MontantHT] as [Montant HT] FROM
[MO] ORDER BY Code

else --on souhaite une MO suivant son ID
SELECT [Id_MO]
,[Libelle]
,[MontantHT]
,[TxTVAFr]
,[CptVenteFr]
,[CptAchatFr]
,[TxTVAHorsFr]
,[CptVenteHorsFr]
,[CptAchatHorsFr]
,[CptCessionInterne]
,[DateCreation]
FROM [MO]
WHERE Id_MO = @ID
END



'
Avatar
Sylvain Lafontaine
Je n'ai pas d'installation SQL-Server Express 2005 pour l'essayer mais ce
code m'a l'air parfaitement normal et OK. L'avez-vous essayé pour être sûr
que cela ne fonctionnait pas?

De plus, vous ne devriez jamais utiliser le préfixe sp_ pour le nom de vos
procédures stockées puisqu'il a une signification spéciale pour SQL-Server.

--
Sylvain Lafontaine, ing.
MVP - Technologies Virtual-PC
E-mail: http://cerbermail.com/?QugbLEWINF


"Chris" wrote in message
news:
Chris a écrit :
bonjour,
j'utilise yukon express 2005 pour generer toutes mes procedures sous
forme de script grâce à l'assistant. En fait j'ai écrit environ 60 SP
mais maintenant je souhaite les mettre sous forme de script pour les
conserver. Mon probleme vient du fait qd il les genere automatiquement le
script SQL il me met des ' n'importe ou du coup yukon prend la moitie de
la SP pour un commentaire.

Savez comment je peux faire pour resoudre ce bug tres ennuyeux ??

merci




voici un exemple de ce que l'assistant genere

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id =
OBJECT_ID(N'[dbo].[sp_s_MO]') AND type in (N'P', N'PC'))
BEGIN
EXEC dbo.sp_executesql @statement = N'
CREATE PROCEDURE [dbo].[sp_s_MO]
@ID int
AS
BEGIN
SET NOCOUNT ON;

if @ID = 0 --si on veut la liste des MO

SELECT [Id_MO] as Code ,[Libelle], [MontantHT] as [Montant HT] FROM [MO]
ORDER BY Code

else --on souhaite une MO suivant son ID
SELECT [Id_MO]
,[Libelle]
,[MontantHT]
,[TxTVAFr]
,[CptVenteFr]
,[CptAchatFr]
,[TxTVAHorsFr]
,[CptVenteHorsFr]
,[CptAchatHorsFr]
,[CptCessionInterne]
,[DateCreation]
FROM [MO]
WHERE Id_MO = @ID
END



'


Avatar
Chris
Sylvain Lafontaine a écrit :
Je n'ai pas d'installation SQL-Server Express 2005 pour l'essayer mais ce
code m'a l'air parfaitement normal et OK. L'avez-vous essayé pour être sûr
que cela ne fonctionnait pas?

De plus, vous ne devriez jamais utiliser le préfixe sp_ pour le nom de vos
procédures stockées puisqu'il a une signification spéciale pour SQL-Server.



en fait je viens de le retester et c passer, donc l'erreur devait venir
de mon code. SInon pour le sp_ je ne savais pas, que cela veut il dire
pour SQL Server ?

merci
Avatar
SQLpro
lorsque vous préfixez une procédure stockée par "sp_" MS SQL Server perd
beaucoup de temps a aller voir si elle existe d'abord dans la base master
(proc système). En effet, ce préfixe est le tag pour dire à MS SQL Server :
tiens voila une procédure qui devrait se situer dans master... De plus si
master contient une procédure de ce nom, ce sera celle de master qui sera
exécutée.

DEMO :

CREATE DATABASE MA_BASE_TEST
GO

USE MA_BASE_TEST
GO

CREATE PROCEDURE sp_help @table_name sysname
AS

DECLARE @SQL VARCHAR(8000)

SET @SQL = 'SELECT * FROM ' + @table_name

EXEC (@SQL)

GO

EXEC sp_help 'sysobjects' --> celle de master sera exécutée !

EXEC MA_BASE_TEST.dbo.sp_help 'sysobjects' --> celle de master sera exécutée !

Votre procédure est inaccessible !!!

A +

Frédéric BROUARD - SQLpro - MVP SQL Server
Expert SQL, SGBDR, modélisation de données
SQL et SGBDR http://sqlpro.developpez.com/
Formations, conseils, audit, modélisation,
optimisation, tuning : www.datasapiens.com

"Chris" a écrit :

Sylvain Lafontaine a écrit :
> Je n'ai pas d'installation SQL-Server Express 2005 pour l'essayer mais ce
> code m'a l'air parfaitement normal et OK. L'avez-vous essayé pour être sûr
> que cela ne fonctionnait pas?
>
> De plus, vous ne devriez jamais utiliser le préfixe sp_ pour le nom de vos
> procédures stockées puisqu'il a une signification spéciale pour SQL-Server.
>
en fait je viens de le retester et c passer, donc l'erreur devait venir
de mon code. SInon pour le sp_ je ne savais pas, que cela veut il dire
pour SQL Server ?

merci