日期:2014-05-18  浏览次数:20916 次

sql自定义一个全局变量
--由于年度的变化,我需要修改变量的值,去一个一个的修改 易出错,漏掉
declare @a varchar(10) set @a='2008'
select * from code where iyear=@a
go
declare @a varchar(10) set @a='2008'
select * from accinformation_year where iyear=@a


--我想是想如下功能(自定义一个全局变量)
declare @a varchar(10) set @a='2008' --只定义一次无论下面有多少“go” 都认识这个变量  
go
select * from code where iyear=@a
go
select * from accinformation_year where iyear=@a
go

------解决方案--------------------
更正一下@@开头的不是系统变量,是系统函数。
目前版本的sql server还不能定义系统函数,但是可以用用户自定义函数UDF,可以如下定义:
SQL code

create function dbo.const_year
()
returns int
as
begin
   declare @year nvarchar(100);
   set @year = '2008';
   return @year;
end;
go