如何在tsql中打印表变量值?

beh*_*aqi 5 sql-server

我是新来的sql server,写下这个tsql

DECLARE @TempCustomer TABLE
(
   DATE_ nchar(20)
);

INSERT INTO 
    @TempCustomer 
SELECT distinct [ExecuteDate]
FROM 
     [ClubEatc].[dbo].[GetOnlineBills]

DECLARE  @intFlag int
set @intFlag=0;
WHILE (@intFlag <=2)
BEGIN
    PRINT @TempCustomer.DATE_
    SET @intFlag = @intFlag + 1
END
GO
Run Code Online (Sandbox Code Playgroud)


但是当我运行该查询时,我收到此错误:

Msg 137, Level 16, State 1, Line 30
Must declare the scalar variable "@TempCustomer".
Run Code Online (Sandbox Code Playgroud)


我该如何解决这个问题?谢谢大家。

Kan*_*amy 4

不知道为什么你有这样的要求..你可以很好地使用 select * from @tempCustomer 如上面评论中所述..但是如果你仍然想循环并打印单个日期,你可以做一些解决方法

DECLARE @TempCustomer TABLE
(
   id int identity(1,1)
   DATE_ nchar(20)
);

INSERT INTO 
    @TempCustomer 
SELECT distinct [ExecuteDate]
FROM 
     [ClubEatc].[dbo].[GetOnlineBills]

DECLARE  @intFlag int
set @intFlag=0;
WHILE (@intFlag <=2)
BEGIN
    select * from @TempCustomer where id = @intFlag
    SET @intFlag = @intFlag + 1
END
GO
Run Code Online (Sandbox Code Playgroud)