微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想在动态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注入的影响.

原文地址:https://www.jb51.cc/mssql/81547.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐