Я пытаюсь создать динамический 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
Что я отсутствующий с этим, когда я хочу передать в params, а не конкатенировать их с утверждением?
Как обычно, я очень ценю все входные данные.
Спасибо,
S
Sweet Спасибо за ввод! – scarpacci