problemas con fechas y sp_executesql

28/04/2008 - 11:04 por Dani | Informe spam
Hola a todos, estoy intentando lo siguiente pero no me funciona, de todas
maneras no encuentro informmacion sobre sp_executesql o por lo menos clara y
facil.

Alguien me puede dar un link para mirar sp_executesql.

Os madno mi código para que se entienda que quiero hacer.

gracias a todo el mundo.

USE [Partes]
GO
/****** Objeto: StoredProcedure [dbo].[sp_InsertarLineaParte_fecha]
Fecha de la secuencia de comandos: 04/28/2008 10:36:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[sp_InsertarLineaParte_fecha]
@fecha smalldatetime
AS
BEGIN

DECLARE @SQLString AS varchar(500);
DECLARE @ParmDefinition NVARCHAR(500);
SET @SQLString = N'UPDATE tbl_partes SET ' +
' Fecha5 = @fechaXX ' +
' WHERE NumParte = 12'

SET @ParmDefinition = '@fechaXX smalldatetime';

EXECUTE sp_executesql @SQLString, @ParmDefinition,
@fechaXX = @fecha;
END


sp_insertarlineaparte_fecha '11/11/2011'
 

Leer las respuestas

#1 Enrique Catala Bañuls
28/04/2008 - 13:48 | Informe spam
Hola dani, dos cosas:
La primera es que datetime y smalldatetime solo soportan las fechas ISO con
formato YYYYMMDD por lo que prueba a lanzar la llamada con 20111111.

Por otro lado, para la sintaxis de sp_executesql está bastante bien
explicada en http://msdn2.microsoft.com/es-es/li...88001.aspx

Por último y aunque esto no tiene que ver con tu pregunta, decirte que el
beneficio de sp_executesql lo tienes si realizas generación de sql desde tu
aplicación cliente y no tienes posibilidad de plantear una arquitectura
basada en procedimientos almacenados (lo deseable). En este caso concreto que
supongo que es un ejemplo estas desaprovechando el beneficio de la
compilación de un procedimiento almacenado.

Lo suyo seria que hicieras:
create PROCEDURE [dbo].[sp_InsertarLineaParte_fecha]
@fecha smalldatetime
AS
BEGIN

UPDATE tbl_partes SET
Fecha5 = @fecha
WHERE NumParte = 12
END

Enrique Catala Bañuls
Solid Quality Mentors



"Dani" wrote:

Hola a todos, estoy intentando lo siguiente pero no me funciona, de todas
maneras no encuentro informmacion sobre sp_executesql o por lo menos clara y
facil.

Alguien me puede dar un link para mirar sp_executesql.

Os madno mi código para que se entienda que quiero hacer.

gracias a todo el mundo.

USE [Partes]
GO
/****** Objeto: StoredProcedure [dbo].[sp_InsertarLineaParte_fecha]
Fecha de la secuencia de comandos: 04/28/2008 10:36:52 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[sp_InsertarLineaParte_fecha]
@fecha smalldatetime
AS
BEGIN

DECLARE @SQLString AS varchar(500);
DECLARE @ParmDefinition NVARCHAR(500);
SET @SQLString = N'UPDATE tbl_partes SET ' +
' Fecha5 = @fechaXX ' +
' WHERE NumParte = 12'

SET @ParmDefinition = '@fechaXX smalldatetime';

EXECUTE sp_executesql @SQLString, @ParmDefinition,
@fechaXX = @fecha;
END


sp_insertarlineaparte_fecha '11/11/2011'




Preguntas similares