创建和填充临时表

0 sql-server stored-procedures temporary-tables

我有一个存储过程,它选择一些数据并返回它。现在我还想添加一个临时表,用数据填充它并用存储过程返回它。

我将其定义如下:

create table #tempDateTable
(
    Name varchar,
    TempDate datetime
)

INSERT INTO #tempDateTable(Name, TempDate) values ('Smith', @myDate)
SELECT * FROM #tempDateTable
Run Code Online (Sandbox Code Playgroud)

@myDate 是传递给存储过程的参数。

当我执行存储过程时,它给了我:

Msg 8152, Level 16, State 14, Procedure date_samples_procedure, Line 90
String or binary data would be truncated.
Run Code Online (Sandbox Code Playgroud)

我觉得奇怪的是,Line 90上面显示的任何一行都不是,但是如果我删除所有代码#tempDateTable,存储过程将正常工作。

dat*_*god 5

您应该指定 varchar 列的长度,例如 varchar(2000)。