加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如何在动态sql查询中设置表名?

发布时间:2020-12-12 16:43:11 所属栏目:MsSql教程 来源:网络整理
导读:我想在动态SQL查询中设置表名. 我尝试成功参数如下: /* Using sp_executesql *//* Build and Execute a Transact-SQL String with a single parameter value Using sp_executesql Command *//* Variable Declaration */DECLARE @EmpID AS SMALLINTDECLARE @S
我想在动态SQL查询中设置表名.

我尝试成功参数如下:

/* Using sp_executesql */
/* Build and Execute a Transact-SQL String with a single parameter 
value Using sp_executesql Command */

/* Variable Declaration */
DECLARE @EmpID AS SMALLINT
DECLARE @SQLQuery AS NVARCHAR(500)
DECLARE @ParameterDefinition AS NVARCHAR(100)
/* set the parameter value */
SET @EmpID = 1001
/* Build Transact-SQL String by including the parameter */
SET @SQLQuery = 'SELECT * FROM tblEmployees WHERE EmployeeID = @EmpID' 
/* Specify Parameter Format */
SET @ParameterDefinition =  '@EmpID SMALLINT'
/* Execute Transact-SQL String */
EXECUTE sp_executesql @SQLQuery,@ParameterDefinition,@EmpID

现在我想使用参数动态地使用TABLE NAME,但是我没有这样做.

请指导我

解决方法

表名称不能作为参数提供,因此您必须手动构造SQL字符串:
SET @SQLQuery = 'SELECT * FROM ' + @TableName + ' WHERE EmployeeID = @EmpID'

但是,请确保您的应用程序不允许用户直接输入@TableName的值,因为这将使您的查询容易受到SQL注入的影响.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读