如何声明标量 table 类型?
How to declare scalar table type?
我有一个这样的存储过程;
ALTER PROCEDURE [dbo].[crudValues]
@tblValue as dbo.tblValue READONLY
AS
BEGIN
SET NOCOUNT ON;
UPDATE Value SET Value.Value = @tblValue.Value, Value.LastUpdate = @tblValue.LastUpdate FROM Value INNER JOIN @tblValue ON Value.ID = @tblValue.ID
END
当我执行这个存储过程时,它给我错误
Msg 137, Level 16, State 1, Procedure crudValues, Line 21
Must declare the scalar variable "@tblValue".
Msg 137, Level 16, State 1, Procedure crudValues, Line 21
Must declare the scalar variable "@tblValue".
Msg 137, Level 16, State 1, Procedure crudValues, Line 21
Must declare the scalar variable "@tblValue".
如何声明标量 table 类型。或者我该如何解决这个错误?
将 table 变量括在双引号或方括号中(但不在连接中)或在查询中为 table 变量使用别名:
ALTER PROCEDURE [dbo].[crudValues]
@tblValue dbo.tblValue READONLY
AS
BEGIN
SET NOCOUNT ON;
UPDATE Value
SET Value.Value = t.Value, Value.LastUpdate = t.LastUpdate
FROM Value INNER JOIN @tblValue t ON Value.ID = t.ID
END
带引号标识符的备选方案如下所示:[@tblValue].ID
或 "@tblValue".ID
。
您需要为 table 添加别名。此代码产生相同的错误:
DECLARE @Table TABLE
(
Field INT
)
SELECT
@Table.Field
FROM @Table
我有一个这样的存储过程;
ALTER PROCEDURE [dbo].[crudValues]
@tblValue as dbo.tblValue READONLY
AS
BEGIN
SET NOCOUNT ON;
UPDATE Value SET Value.Value = @tblValue.Value, Value.LastUpdate = @tblValue.LastUpdate FROM Value INNER JOIN @tblValue ON Value.ID = @tblValue.ID
END
当我执行这个存储过程时,它给我错误
Msg 137, Level 16, State 1, Procedure crudValues, Line 21
Must declare the scalar variable "@tblValue".
Msg 137, Level 16, State 1, Procedure crudValues, Line 21
Must declare the scalar variable "@tblValue".
Msg 137, Level 16, State 1, Procedure crudValues, Line 21
Must declare the scalar variable "@tblValue".
如何声明标量 table 类型。或者我该如何解决这个错误?
将 table 变量括在双引号或方括号中(但不在连接中)或在查询中为 table 变量使用别名:
ALTER PROCEDURE [dbo].[crudValues]
@tblValue dbo.tblValue READONLY
AS
BEGIN
SET NOCOUNT ON;
UPDATE Value
SET Value.Value = t.Value, Value.LastUpdate = t.LastUpdate
FROM Value INNER JOIN @tblValue t ON Value.ID = t.ID
END
带引号标识符的备选方案如下所示:[@tblValue].ID
或 "@tblValue".ID
。
您需要为 table 添加别名。此代码产生相同的错误:
DECLARE @Table TABLE
(
Field INT
)
SELECT
@Table.Field
FROM @Table