sql-server-2005 - 是否可以将表名传递到存储过程中并在没有 Exec 函数的情况下使用它?

标签 sql-server-2005 t-sql

我想创建一个 SP 或 UDF,其中我提供表和列名作为参数,并且它对该目标执行某些操作。我正在使用 Sql Server 2005

微不足道我想要完成的示例:

CREATE FUNCTION Example (@TableName AS VARCHAR(100))
RETURNS TABLE
AS
BEGIN
    SELECT * 
    INTO #temp
    FROM @TableName

    RETURN #temp
END

该示例只是一些微不足道的事情,旨在说明我在将表名称作为参数传递方面试图完成的任务。

这是否可以在不连接字符串和调用 EXEC 函数的情况下完成?

最终,我尝试将 this question 中的答案转换为变成可重复使用的东西。

最佳答案

这有 SQL 注入(inject)的味道。您仍然需要使用 EXEC 来执行此操作。

关于sql-server-2005 - 是否可以将表名传递到存储过程中并在没有 Exec 函数的情况下使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1607918/

相关文章:

sql-server-2005 - SQL左联接(多个联接条件)

sql - 如何在 SQL GROUP BY 子句中返回空组

c# - 数据库队列的并行处理

sql - 在没有聚合函数的情况下进行分区,避免分组依据

t-sql - 在SQL Server 2000中,如何删除没有主键的表中的指定行?

sql - SQL Server 2000 中的动态交叉表

sql - 将大表导入azure sql数据库

sql-server - 哪个插入速度更快,XML 字段还是 Varchar(max) 字段?

sql-server - sql server 2005 xml更新查询汉字

sql - 实现向数据库角色授予对数据库中所有用户表的权限的 SQL 脚本的最佳方法是什么?