正确避免SQL注入

问题描述

根据 MSDN 错误 Invalid descriptor index 如果参数是 SELECT 列表的一部分则返回。

我正在尝试执行查询

SELECT object_id(?);

并收到此错误

然而,该参数实际上并不是 SELECT 列表的一部分。

那么在这种情况下如何正确避免对参数进行硬编码?

我想从 sql Server 查询表 ID。

或者我必须对表名进行硬编码?

编辑:

我很惊讶地看到以下内容

SELECT o.object_id FROM sys.objects o,sys.schemas s WHERE o.schema_id = s.schema_id AND o.name = 'abcatcol' AND s.name = 'dbo';

给出不同的结果,而不仅仅是简单的

SELECT object_id( 'dbo.abcatcol' );

我只是想避免列表中的表名并将其放在参数中。

我错过了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)