sqlserver定义变量,sql server定义变量

SQLSERVER 里AS前后定义的变量有什么区别嘛

CREATE PROCEDURE p_PName

成都创新互联公司专业为企业提供莱阳网站建设、莱阳做网站、莱阳网站设计、莱阳网站制作等企业网站建设、网页设计与制作、莱阳企业网站模板建站服务,10多年莱阳做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

@ID int

AS

begin

DECLARE @Num INT

end

如上为存储过程模板,在AS之前的为存储过程参数,需要外部传入或接受。调用方式如下。

exec p_PName @ID=1 或者 EXEC p_PName 1(省略参数名),但外部都是需要传入的。

在AS后定义的变量,可以理解为临时变量,外部是无法访问到此变量的。

如何将sql server 中的字段名定义为变量

不可以,列名、表名都不能用变量,可以通过拼接字符,然后用exec来执行 如,exec('update tb set '+列名变量+'='''+字符类的变量值+''' where 条件')

SQLserver 怎么声明变量?

局部变量用一个@标识,全局变量用两个@(常用的全局变量一般都是已经定义好的);

申明局部变量语法:declare @变量名 数据类型;例如:declare @num int;

赋值:有两种方法式(@num为变量名,value为值)

set @num=value; 或 select @num=value;

如果想获取查询语句中的一个字段值可以用select给变量赋值,如下:

select @num=字段名 from 表名 where ……

全局变量是系统预定义的,返回一些系统信息,全局变量以两个at(@)开头。

sqlserver2k存储过程中定义时间变量

存储过程里参数的默认值不能使用函数,所以不能在存储过程里直接把参数的默认值设置为当前系统时间,不过可以在存储过程里赋值。还有一点疑问,既然@myday是当前系统时间了,为什么还要做成参数呢?

CREATE PROCEDURE pro_test

@myday char(10)

AS

set @myday=convert(char(10),getdate(),21)

update mytable set status = 1 where day@myday

GO

@myday不为参数时可以这么写

CREATE PROCEDURE pro_test

AS

declare @myday char(10)

set @myday=convert(char(10),getdate(),21)

update mytable set status = 1 where day@myday

GO


当前文章:sqlserver定义变量,sql server定义变量
网页链接:http://pwwzsj.com/article/dsicsoi.html