私はこの機能を持っています:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[SE_VALOR] (@valor int, @verd char(20), @fals char(20))
RETURNS char(20)
AS
BEGIN
DECLARE @resposta char(20)
---Check for unit, if meters(MT), convert it to feet(FT)
IF @valor=1
BEGIN
set @resposta = @verd
END
ELSE
BEGIN
set @resposta =@fals
END
RETURN( @resposta )
END
そして、私はこのストアドプロシージャを持っています:
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER PROCEDURE [dbo].[SP_pn_FichaTecnica_Motor_Web]
@IDVersao int
AS
DECLARE @Comando nvarchar(4000)
DECLARE @DIESEL varchar(10)
DECLARE @GASOLINA varchar(10)
SET @DIESEL = 'Diesel'
SET @GASOLINA = 'Gasolina'
--
set @Comando = 'SELECT somefield1, somefield2, somefield3,
dbo.SE_VALOR(TblMotor.TipoInjeccao,@DIESEL,@GASOLINA) AS TipoInjeccao
FROM sometable
WHERE IDVersao = @IDVersao'
EXEC sp_executesql @Comando, N'@IDVersao int, @DIESEL varchar(10),@GASOLINA varchar(10)',@IDVersao,@DIESEL,@GASOLINA
print(@Comando)
エラーを出さずに @DIESEL と @GASOLINA を渡すにはどうすればよいですか?
SPを実行しようとすると:
exec SP_pn_FichaTecnica_Motor_Web 27828
私は得る:
メッセージ 102、レベル 15、状態 1、行 32 構文が正しくありません