sql - 必须声明表变量“@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
解决方案
您还需要将您IF
的动态 SQL 放入其中。
EXEC('
IF (SELECT COUNT(*) FROM [' + @table + '] WHERE [id] = ' + @id + ') < 1
BEGIN
INSERT INTO ['+ @table +'] ([id])VALUES('+ @id +')
END'
)
推荐阅读
- javascript - 在 API 响应数据中格式化 ISO 日期
- keras - Zorro, R, keras 安装, rterm.exe
- c# - 如何保护 Excel 文件中的某些列不被修改?
- webpack - 是否可以将 wasm-bindgen 与 webpack 5 一起使用?
- python - 将代码上传到 AWS lambda 错误 Runtime.ImportModuleError
- django - JWT 注销“详细信息”:“未提供身份验证凭据。”
- node.js - 节点js查找集合数组特定值
- php - TCPDF 报告未显示所有行
- javascript - 为什么在操作中使用符号是不好的做法?
- python - Scrapy登录到网站不成功