0

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

:r .\MyTableScript.sql

在数据库生成时和执行时,一切都运行良好。现在我将脚本分成两个文件来分离函数,我最终在“主脚本”中得到了这样的东西:

:r .\MyTableScript.sql

:r .\MyTableFunctionScript.sql

一切都可以很好地生成数据库,但是当我调用该函数时,我收到错误“没有为该函数提供 216 参数”。

这很奇怪。

如果我使用错误数量的参数调用函数,我会收到正确的消息,例如“...无效数字或参数...”;如果我用错误类型的参数调用函数,那么我会再次收到有关错误类型参数的适当消息。

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

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

现在,我将函数放回与表本身相同的脚本文件中(就在表的 DDL 之后)并重新生成数据库,现在一切都可以正常工作了。

我可以这样(表和函数在一个大脚本文件中),但我更愿意将表和函数脚本拆分为两个 SQL 脚本文件。

我究竟做错了什么?

4

1 回答 1

0

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

于 2013-06-14T08:37:35.083 回答