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

前端之家收集整理的这篇文章主要介绍了如何在动态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.f2er.com/mssql/81547.html

猜你在找的MsSQL相关文章