Rel*_*rin 7 sql sql-server sql-server-2012 sql-server-2012-express
我有这个代码:
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GetProfitDeals]') AND type in (N'P', N'PC'))
DROP PROCEDURE [dbo].[GetProfitDealsVar2]
GO
IF EXISTS(SELECT 1 FROM sys.types WHERE name = 'TableOrderType' AND is_table_type = 1 AND SCHEMA_ID('dbo') = schema_id)
DROP TYPE [dbo].[TableOrderType];
CREATE TYPE TableOrderType AS TABLE(
Order_ID int NOT NULL,
Order_AccNumber int NOT NULL,
Order_OpenDate datetime NULL,
Order_CloseDate datetime NULL,
Order_Profit float NULL
);
GO
CREATE PROCEDURE [dbo].[GetProfitDeals](@OpenDate datetime = NULL, @CloseDate datetime = NULL, @MinProfit float = NULL, @out TableOrderType OUTPUT READONLY)
AS
INSERT INTO @out
SELECT * FROM [Orders]
WHEN [Orders].[OpenDate] >= @OpenDate
GO
Run Code Online (Sandbox Code Playgroud)
但是我收到错误"关于构造的错误语法'READONLY'".我如何解决这个问题,因为我真的需要一个OUTPUT表参数.
Rem*_*anu 12
表参数是只读的.你无法选择它们.使用表值参数:
表值参数必须作为输入READONLY参数传递给Transact-SQL例程.您不能对例程主体中的表值参数执行DML操作,如UPDATE,DELETE或INSERT.
和表值参数:
您不能在表值参数中返回数据.表值参数仅为输入; 不支持OUTPUT关键字.
阅读SQL Server中的数组和列表,以全面讨论替代方案.
| 归档时间: |
|
| 查看次数: |
21026 次 |
| 最近记录: |