为什么未在sp中声明表类型参数?

时间:2018-10-10 06:32:39

标签: sql sql-server tsql stored-procedures sql-server-2012

[Date] == 0 ? NULL(DT_DATE) : (DT_DATE)(SUBSTRING([Date],1,4) + "-" + SUBSTRING([Date],5,2) + "-" + RIGHT([Date],2))

但是它没有被声明并抛出错误:

  

Msg 2715,级别16,状态3,过程InsertInvoices,第18行列,   参数或变量#8:找不到数据类型dbo.ServiceIDs。   参数或变量“ @ServiceIDs”的数据类型无效。

即使我已经声明了表类型。

ALTER PROCEDURE [dbo].[InsertInvoices] 


        @ServiceIDs as dbo.ServiceIDs READONLY,

2 个答案:

答案 0 :(得分:2)

您的问题在于拼写。您的类型为[dbo]。[ServicesIDs],但您使用@ServiceIDs。问题是“ s”字符。

ALTER PROCEDURE [dbo].[InsertInvoices] 


        @ServiceIDs as dbo.ServicesIDs READONLY,

答案 1 :(得分:1)

由于输入错误,它不起作用: 您的类型称为[dbo].[ServicesIDs],但是您尝试将其用作dbo.ServiceIDs(请注意Services中缺少的's'!

尝试一下:

ALTER PROCEDURE [dbo].[InsertInvoices] 
   @ServiceIDs as dbo.ServicesIDs READONLY,