TRANSACT SQL错误216

时间:2013-06-14 04:34:31

标签: sql-server tsql

我有一个Transact SQL脚本,它根据我使用SQLCMD模式从另一个脚本调用的表创建一个表和一个表值函数;例如:

:r。\ MyTableScript.sql

在数据库生成时和执行时都可以正常运行。 现在我将脚本拆分为两个文件以分离函数,我最终在“主脚本”中得到类似的内容:

:r。\ MyTableScript.sql

:r。\ MyTableFunctionScript.sql

一切都适用于生成数据库,但是当我调用该函数时,我收到错误“216函数没有提供参数”。

这很奇怪。

如果我使用错误数量的参数调用函数,我会收到正确的消息,例如'...无效数字或参数......';如果我用错误类型的参数调用函数,那么我再次得到关于参数的错误类型的相应消息。

但是当我用正确的参数调用函数时,我得到了上述消息。

我知道CREATE FUNCTION必须是批处理中的第一个语句,它是。我也尝试过在“正确”的地方使用和不使用分号。

现在,我将该函数放回到与表本身相同的脚本文件中(就在表的DDL之后)并重新生成数据库,所有这些现在再次正常工作。

我可以这样离开(表和函数放在一个大的脚本文件中),但我更愿意将表和函数脚本溢出到两个SQL脚本文件中。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

也许你传递了正确数量的参数,但其中一个是NULL。