我有很多stored procedures
使用的编码值,所以创建一个全局变量(在数据库级别)并在所有stored procedure
中使用它,
如果再次发生变化,则只需要更改该变量的值将影响存储过程的所有逻辑。
通过全局变量我的意思是:@@ Error,@@ ROWCOUNT等等。
如果有任何其他方法,请建议。
答案 0 :(得分:3)
您可以创建表并在那里存储值。然后任何需要该值的SP都可以查询该表。我通常建议修复一行和多列(这样每个列,代表一个“全局变量”可以有一个合适的数据类型)。
E.g。
CREATE TABLE Globals (
X char(1) not null,
GlobalVar1 varchar(250) not null,
GlobalVar2 int not null,
constraint PK_Globals PRIMARY KEY (X),
constraint CK_Globals_Single CHECK (X='X')
)
然后插入行:
INSERT INTO Globals (X,GlobalVar1,GlobalVar2)
VALUES ('X','someone@example.com',32)
然后再更新它。然后,您可以将特定列值读取到存储过程中的局部变量中,或者只是加入此表,具体取决于最合适的位置。