我已经定义了具有11个参数的表值函数X
。它们的类型分别为nvarchar(30)
,nvarchar(30)
,datetime
,datetime
,nvarchar(15)
,nvarchar(4)
,xml
,nvarchar(8)
,nvarchar(80)
,bit
和bit
。这用于Microsoft SQL Server2012。当我使用
select * from
X('A','B','2014-01-01','2014-12-31',null,null,'<C><D>E</D></C>',null,null,1,0)
我遇到此错误:
Parameters were not supplied for the function X
显然与以下两个不同:
An insufficient number of arguments were supplied for the procedure or function X
Procedure or function X has too many arguments specified.
这与两个预期参数值null
有关吗?如何解决该问题并定义/调用一个具有11个参数的表值函数(例如其中一个,其中一些可能带有null
?]]
UPDATE
如果我传递任意字符串而不是null
,问题仍然存在。因此,肯定还有另一个(也许是愚蠢的)错误。我已经定义了具有11个参数的表值函数X。它们的类型是nvarchar(30),nvarchar(30),datetime,datetime,nvarchar(15),nvarchar(4),xml,nvarchar(8),nvarchar(80),bit和bit ...
定义类似您所描述的函数的正确方法如下:
如果您的函数不需要任何参数,但是仍然出现该错误: