不能声明为READONLY,因为它不是SQL Server 2012上的表值参数错误 [英] cannot be declared READONLY since it is not a table-valued parameter error on SQL Server 2012
本文介绍了不能声明为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屋!
查看全文