繁体   English   中英

SQL Server 2008从统一表获取数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM