189 8069 5689

sqlserver声明,sqlserver声明变量使用

sqlserver中声明变量并使用

你的问题出在对变量的赋值上了,应该用:SELECT @a=@@IDENTITY,

成都创新互联专注于莱山网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供莱山营销型网站建设,莱山网站制作、莱山网页设计、莱山网站官网定制、微信小程序定制开发服务,打造莱山网络公司原创品牌,更为您提供莱山网站排名全网营销落地服务。

以下是我按你的要求做的例子,SQLServer 2008中测试正确:

Create Table login

(sId int IDENTITY PRIMARY KEY,

Name varchar(40) ,

Password varchar(40),

alevel varchar(40))

go

Create Table uninfo

(uid int)

go

declare @a INT

Insert Into login (Name,Password,alevel)

values (7,7,4)

Select * From login

SELECT @a=@@IDENTITY

insert into uninfo (uid) values (@a)

Select * From uninfo

go

drop table login

go

drop table uninfo

go

SQLserver 怎么声明变量?

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

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

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

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

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

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

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

SQLServer跨数据库执行存储,并且这个存储带有表类型参数,需要怎么声明传入?

参数定义

单个参数

1 CREATE PROCEDURE HelloWorld1

2 @UserName VARCHAR(10)

3 AS

4 BEGIN

5 PRINT 'Hello' + @UserName + '!';

6 END;

7 go

1 DECLARE @RC int;

2 EXECUTE @RC = HelloWorld1 'Edward' ;

3 PRINT @RC;

4 go

HelloEdward!

IN、OUT、IN OUT

注:

SQL Server 的 OUTPUT 需要写在变量数据类型后面。

SQL Server 没有 IN OUT 关键字

OUTPUT 已经相当于 IN OUT 了。

1 CREATE PROCEDURE HelloWorld2

2 @UserName VARCHAR(10),

3 @OutVal VARCHAR(10) OUTPUT,

4 @InoutVal VARCHAR(10) OUTPUT

5 AS

6 BEGIN

7 PRINT 'Hello ' + @UserName + @InoutVal + '!';

8 SET @OutVal = 'A';

9 SET @InoutVal = 'B';

10 END;

11 go

1

2 DECLARE @RC int, @OutVal VARCHAR(10), @InoutVal VARCHAR(10);

3 BEGIN

4 SET @InoutVal = '~Hi~';

5 EXECUTE @RC = HelloWorld2 'Edward', @OutVal OUTPUT, @InoutVal OUTPUT;

6 PRINT @RC;

7 PRINT '@OutVal=' + @OutVal;

8 PRINT '@InoutVal=' + @InoutVal;

9 END

10 go

Hello Edward~Hi~!

@OutVal=A

@InoutVal=B

参数的默认值

1 CREATE PROCEDURE HelloWorld3

2 @UserName VARCHAR(10),

3 @Val1 VARCHAR(20) = ' Good Moning,',

4 @Val2 VARCHAR(20) = ' Nice to Meet you'

5 AS

6 BEGIN

7 PRINT 'Hello ' + @UserName + @Val1 + @Val2 + '!';

8 END;

9 go

1

2 DECLARE @RC int;

3 BEGIN

4 EXECUTE @RC = HelloWorld3 'Edward';

5 PRINT @RC;

6 EXECUTE @RC = HelloWorld3 'Edward', ' Good Night,';

7 PRINT @RC;

8 EXECUTE @RC = HelloWorld3 'Edward', ' Good Night,', ' Bye';

9 PRINT @RC;

10 END

11 go

Hello Edward Good Moning, Nice to Meet you!

Hello Edward Good Night, Nice to Meet you!

Hello Edward Good Night, Bye!

指定参数名称调用

此部分使用 “参数默认值”那一小节的存储过程。

用于说明当最后2个参数是有默认的时候,如何跳过中间那个。

1 DECLARE @RC int;

2 BEGIN

3 EXECUTE @RC = HelloWorld3 'Edward';

4 PRINT @RC;

5 EXECUTE @RC = HelloWorld3 'Edward', @Val1=' Good Night,';

6 PRINT @RC;

7 EXECUTE @RC = HelloWorld3 'Edward', @Val1=' Good Night,', @Val2=' Bye';

8 PRINT @RC;

9 EXECUTE @RC = HelloWorld3 'Edward', @Val2=' HeiHei ';

10 PRINT @RC;

11 END

12 go

Hello Edward Good Moning, Nice to Meet you!

Hello Edward Good Night, Nice to Meet you!

Hello Edward Good Night, Bye!

Hello Edward Good Moning, HeiHei !

sqlserver 存储过程如何动态的声明 变量

/*

Sql server 存储过程中怎么将变量赋值

*/

--SQL赋值语句

DECLARE @test1 INT

SELECT @test1 = 111

SET @test1 = 222

--SQL函数赋值,假定count()是自定义函数

DECLARE @test2 INT

SELECT @test2 = COUNT(*) FROM sys.sysobjects

--SQL存储过程赋值,直接传参处理(类似C语言中的指针吗)

IF OBJECT_ID('sp_test') IS NOT NULL DROP PROCEDURE sp_test

GO

CREATE PROCEDURE sp_test(@test INT OUTPUT)

AS

BEGIN

SELECT @test = 999

END

GO

DECLARE @test3 INT

EXEC sp_test @test3 OUTPUT

SELECT @test3

DROP PROCEDURE sp_test

GO


标题名称:sqlserver声明,sqlserver声明变量使用
本文链接:http://jkwzsj.com/article/dsdgojs.html

其他资讯