我想在一个会“吞下”错误的块中使用 CREATE FUNCTION,但这
BEGIN TRY
CREATE FUNCTION test (@ID int)
RETURNS int
AS
BEGIN
RETURN(2 * @ID)
END
END TRY
BEGIN CATCH
END CATCH
结果是
消息 156,级别 15,状态 1,第 3 行关键字“FUNCTION”附近的语法不正确。消息 137,级别 15,状态 2,第 7 行 必须声明标量变量“@ID”。
为什么?
许多 DDL 语句必须启动批处理或成为批处理中的唯一语句。所以一般的解决方案是使用动态SQL。例如
我想在一个会“吞下”错误的块中使用 CREATE FUNCTION,但这