我必须使用一个软件,一旦运行分析,它就会创建一个具有唯一引用ID的表。要通过SQL访问这些结果很麻烦,所以我创建了一个模板,以便用户可以轻松地将结果传递到Excel中。
我遇到的问题是表名不断变化。有没有办法制作:
Select * From <variable>
可能?
提前致谢
答案 0 :(得分:3)
是的,它被称为动态SQL:
SQL Server
DECLARE @sql AS VARCHAR(MAX)
SET @sql = 'Select * From ' + @yourTableNameVariable
EXEC(@sql)
ORACLE source
sql_stmt := 'Select * From ' || yourTableNameVariable;
EXECUTE IMMEDIATE sql_stmt;
MySQL source
SET @s = CONCAT('SELECT * FROM ',@yourTableNameVariable);
PREPARE stmt FROM @s;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
<强>声明强> 我只精通SQL Server。其他示例是对数据库引擎名称旁边的 [source] 中定义的代码的修改。
答案 1 :(得分:1)
有可能使用动态sql例如对于t-sql看起来像
declare @tablename varchar(max),
@sql varchar(max)
set @tablename = 'tableName'
set @sql = 'Select * From '+@tablename
exec(@sql)