2015-01-01 97 views
0
create proc ForCustomTable 
(
    @FullName MyCustomTable READONLY 
) 
as 
    set nocount on 

    insert into @FullName 
     select Fname, Lname 
     from addr 

得到错误的存储过程........如何创建自定义的表型

如何解决这个问题?

+0

返回地址*** ***什么错误?!?!?我们无法阅读你的屏幕,也没有你的想法 - 你必须**告诉我们!** –

+0

错误_应该是显而易见的:你将'@ FullName'声明为'READONLY',但正在尝试写入它。怎么修?了解桌面参数(TVP)是什么以及它们的用途。那么如果你仍然需要帮助,你需要在问题中包括你想要完成的事情。 –

回答

1

您不能使用table valued parameter从一个存储过程(由关键字READONLY建议返回数据。你会得到错误

的表值参数“@FullName”是只读的,不能修改。

有很多替代

  • 返回结果的数据集(即只返回SELECT数据结果)
  • 将数据插入到#temp表中 - 在连接期间#temp表将可用。
  • 而不是使用一个存储过程中,将其更改为表值函数,并从中
+0

你为什么认为O.P.试图通过TVP返回数据?这个人有可能试图像使用OUTPUT参数一样使用它,但是发布的代码有太多错误,无法推断意图。事实上,如果你对这个人的意图是正确的,那么O.P.对SQL Server存储过程有一个基本的误解,他们将无法理解你的答案;-) –

相关问题