如何使用存储过程中的INSERT语句动态修改表名

时间:2016-08-11 09:38:47

标签: sql sql-server database tsql stored-procedures

我有一个存储过程,我使用Insert语句插入表中,即

INSERT INTO [dbo].[Development$Call]

我想为生产系统使用相同的存储过程。

是否可以在存储过程中将Development$Call动态更改为Production$Call 编程

如果我在开发或生产机器中运行相同的存储过程,则会在insert语句中自动替换文本到Development或Production

请建议是否有可能。如果可能的话我怎么能实现呢?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以创建如下所示的映射表。

MAPPINGTABLE

**ServerName    Environment**
PRODServer  PRODUCTION
DEVServer   DEVELOPMENT

将此代码段添加到存储过程中。 @@ Servername返回当前的servername。将其传递给您的映射表以获取环境。

IF (SELECT Environment from MappingTable where ServerName=@@SERVERNAME)='DEVELOPMENT'
INSERT INTO [dbo].[Development$Call]
....
ELSE
INSERT INTO [dbo].[Production$Call]
....