首页 > 解决方案 > 必须声明表变量“@table”。在if条件下,任何人都可以解决?

问题描述

我收到此错误:

必须声明表变量“@table”

从我下面的代码中;在if条件。任何人都可以解决这个问题吗?

ALTER PROCEDURE [dbo].[dummyInsert]
    @id INT,
    @table NVARCHAR(50)
AS
    IF (SELECT COUNT(*) FROM @table WHERE id = @id) < 1
    BEGIN
        EXEC ('INSERT INTO ['+table +'] ([id])VALUES('''+ @id +''')')
    END

标签: sql

解决方案


您还需要将您IF的动态 SQL 放入其中。

EXEC('
    IF (SELECT COUNT(*) FROM [' + @table + '] WHERE [id] = ' + @id + ') < 1
        BEGIN
            INSERT INTO ['+ @table +'] ([id])VALUES('+ @id +')
        END'
)

推荐阅读