不能声明为READONLY,因为它不是SQL Server 2012上的表值参数错误 [英] cannot be declared READONLY since it is not a table-valued parameter error on SQL Server 2012

查看:519
本文介绍了不能声明为READONLY,因为它不是SQL Server 2012上的表值参数错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


我无法执行此操作到SQL Server 2012.我遇到了"参数"   @ tblCustomers
不能被声明为READONLY,因为它不是表值参数。任何想法?

提前致谢!

这是代码

CREATE   PROCEDURE   [dbo] [Update_Customers]

CREATE PROCEDURE [dbo].[Update_Customers]

推荐答案

嗨angelo08,

Hi angelo08,

 

请尝试使用CREATE TYPE来解决您的问题。有关更多信息,请参阅

使用表值参数(数据库引擎)

Please try use CREATE TYPE to solve your issue. For more information , please refer to Use Table-Valued Parameters (Database Engine).

CREATE TYPE [dbo].[CustomerType] AS TABLE(
  [ID] int NOT NULL,
  name varchar(10),
  Country varchar(10))

GO

CREATE PROCEDURE [dbo].[Update_Customers]

      @tblCustomers CustomerType READONLY
AS
BEGIN
      SET NOCOUNT ON;
 
      MERGE INTO Customers c1
      USING @tblCustomers c2
      ON c1.CustomerId=c2.Id
      WHEN MATCHED THEN
      UPDATE SET c1.Name = c2.Name
            ,c1.Country = c2.Country
      WHEN NOT MATCHED THEN
      INSERT VALUES(c2.Id, c2.Name, c2.Country);
END




希望它可以帮到你。


Hope it can help you.

 

最好的问候,

Rachel


这篇关于不能声明为READONLY,因为它不是SQL Server 2012上的表值参数错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆