[英]SQL Server 2008 get data from unified tables
我有一个类似的存储过程:
CREATE PROCEDURE [dbo].[GetData]
@code varchar(10)
AS
BEGIN
SET NOCOUNT ON;
--code goes here
END
proc根据传递的@code
从n个表之一读取数据。 因此,我有一个将代码与实际表名(例如,表)链接的映射。
Code:"A" => dbo.JAN_SALES
Code:"B"=> dbo.FEB_SALES
所有表都具有相同的结构。 我知道如何通过使用“红色” SQL来完成它,想知道是否有更优雅/更有效的方法来使用SQL Server 2008?
编辑1-Red sql是sql,它是通过连接其各个部分而构建的,并通过调用exec('+ @myTable从'选择A. B,C')执行。
您的问题似乎很清楚需要做什么,并且没有比通过以下方式创建T-SQL代码更多的可能性
1)添加评估@code参数的IF块; 要么
2)使用动态Sql(dynamic sql =“ red”)。 请注意,强烈建议不要在生产环境中使用动态sql。
顺便说一句 -在SQL Server 2008上,您可以使用* sp_executesql *专有存储过程。 微软的MSDN 在这里描述了它的工作方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.