ALTER PROCEDURE [dbo].[test]
@tour int,
@tourname varchar(50) OUTPUT,
@tourdepartures varchar(50) OUTPUT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SET @tourname = (select [tour name] from dbo.products1 where tour = @tour)
SET @tourdepartures = (select ddate7 from dbo.TDEPART1 where tour = @tour and depart > convert(int,getdate()))
END
我想用一個存儲過程來填充我的asp.net 頁面上的標籤和一個下拉列表消息512,級別16,狀態1,過程測試,行21子查詢返回多個值
@tourname將填充到一個單一的標籤
而@tourdepartures將多個日期,我想在一個下拉列表
然而,當我跑我的SP我得到這個錯誤
Msg 512, Level 16, State 1, Procedure test, Line 21
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
(1 row(s) affected)
(1 row(s) affected)
,它工作時我做
ALTER PROCEDURE [dbo].[test]
@tour int,
@tourname varchar(50) OUTPUT,
@tourdepartures varchar(50) OUTPUT
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
SET @tourname = (select [tour name] from dbo.product where tour = @tour)
SET @tourdepartures = (select top 1 ddate7 from abcfilestest.dbo.TDEPART where tour = @tour and depart > convert(int,getdate()))
END
,但它只是給我的第一個日期,
列名是否正確? 「旅遊名稱」或「旅遊名稱」? – 2011-01-10 17:53:17
是的,我認爲這與我回來的旅行日期相比更多的出發日期的事實,但爲什麼不能將我的@tourdepartures設置爲多於一個日期 – MyHeadHurts 2011-01-10 17:57:58