Я пытаюсь создать динамический DDL для создания функции, и когда я ее запускаю, она продолжает выдавать ошибку. Я не уверен, что я делаю неправильно с форматом .... Я пробовал много разных вещей, и теперь просто из любопытства я хочу понять, как заставить его работать. Любой вклад приветствуется.
КОД:
DECLARE @SQL nvarchar(max) =
'ALTER FUNCTION dbo.GetFiscalDate()
RETURNS DATETIME
AS
BEGIN
DECLARE @RESULT DATETIME
SELECT @RESULT = @FY
RETURN @RESULT;
END'
,@FY datetime = '01/01/2016'
,@ParamDef nvarchar(50) = N'@FY datetime'
exec sp_executesql @SQL,@ParamDef,@FY
Дает мне эту ошибку:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'FUNCTION'.
Msg 178, Level 15, State 1, Line 7
A RETURN statement with a return value cannot be used in this context.
Этот код, однако ... работает:
DECLARE
@FY nvarchar(10) = '01/01/2015'
,@SQL nvarchar(max)
Select @SQL =
'ALTER FUNCTION dbo.GetFiscalDate()
RETURNS DATETIME
AS
BEGIN
DECLARE @RESULT DATETIME
SELECT @RESULT = ' + @FY + '
RETURN @RESULT;
END'
exec sp_executesql @SQL
Что мне не хватает в этом, когда я хочу передать в параметрах вместо того, чтобы объединить их с утверждением?
Как обычно, я очень ценю все материалы.
Спасибо
S