@@在SQL语句中什么意思

gengzhizhen 2008-10-21 09:27:31
CREATE PROCEDURE [dbo].[AddMeetingInfo]

@MeetingName varchar(255),
@Writer varchar(30),
@BeginTime datetime,
@EndTime datetime,
@LoginedUserId int,
@LoginedUserAccount varchar(20),
@MeetingContent ntext


AS

BEGIN

INSERT INTO [MeetingInfo](MeetingName, Writer, BeginTime, EndTime,
LoginedUserId, LoginedUserAccount, MeetingContent)
VALUES(@MeetingName, @Writer, @BeginTime, @EndTime,
@LoginedUserId, @LoginedUserAccount,@MeetingContent)

SELECT @@IDENTITY AS 'MeetingId'


END
GO
请问SELECT @@IDENTITY AS 'MeetingId'是什么意思
两个@@是什么意思??
...全文
275 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hertz_liu 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 w2571121444 的回复:]
@@IDENTITY --返回标识

@@表示全局变量,用户不能定义 如@@IDENTITY,@@ERROR
@表示局部变量,用户可以定义如:declare @I int
[/Quote]
正解
Hertz_liu 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wufeng4552 的回复:]
@@表示全局变量,用户不能定义 如@@IDENTITY,@@ERROR
@表示局部变量,用户可以定义如:declare @I int
[/Quote]
正解
sunshareforever 2008-10-22
  • 打赏
  • 举报
回复
http://www.ebigear.com/register-sunshareforever.html
浪漫幕末 2008-10-22
  • 打赏
  • 举报
回复
ms-sql里面有很多@@变量,你可以看看联机丛书~
时光瞄 2008-10-22
  • 打赏
  • 举报
回复
过来学习了
程序猿GG 2008-10-22
  • 打赏
  • 举报
回复

@@表示全局变量
w2571121444 2008-10-22
  • 打赏
  • 举报
回复
@@IDENTITY --返回标识

@@表示全局变量,用户不能定义 如@@IDENTITY,@@ERROR
@表示局部变量,用户可以定义如:declare @I int
hyde100 2008-10-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wufeng4552 的回复:]
@@表示全局变量,用户不能定义 如@@IDENTITY,@@ERROR
@表示局部变量,用户可以定义如:declare @I int
[/Quote]
幸运的意外 2008-10-22
  • 打赏
  • 举报
回复
系统预定义全局变量,就是由sql系统预定义的,在哪里都可以直接访问,引用的一些变量.很多这样的变量还是一些状态标识,如@@error,表示前一次操作是不是出了错等等.
ChinaJiaBing 2008-10-21
  • 打赏
  • 举报
回复

返回最后插入的标识值...
duanzhi1984 2008-10-21
  • 打赏
  • 举报
回复
查看SQLserver联机丛书,这的资源比较丰富
水族杰纶 2008-10-21
  • 打赏
  • 举报
回复
@@IDENTITY和SCOPE_IDENTITY和IDENT_CURRENT的区别
1,@@IDENTITY是得到当前会话的所有范围的最后插入的IDENTITY值
2,SCOPE_IDENTITY是得到当前会话的当前范围的最后插入的IDENTITY值
3,IDENT_CURRENT是得到指定表的最后插入的IDENTITY值,与会话、范围无关。

因为在插入和得到IDENTITY值之间可能会有其它的事情发生,但是你只想得到我刚才插入的IDENTITTY值,只有使用SCOPE_IDENTITY函数才行。

以下是测试SQL
(1)
USE pubs
DROP TABLE t6
DROP TABLE t7
GO
CREATE TABLE t6(id int IDENTITY)
CREATE TABLE t7(id int IDENTITY(100,1))
GO
CREATE TRIGGER t6ins ON t6 FOR INSERT
AS
BEGIN
INSERT t7 DEFAULT VALUES
END
GO
--end of trigger definition

SELECT * FROM t6
--id is empty.

SELECT * FROM t7
--id is empty.

--Do the following in Session 1
INSERT t6 DEFAULT VALUES
declare @i int
set @i = 0
while @i < 20000
begin
set @i = @i + 1
print @i
end

SELECT @@IDENTITY as "@@IDENTITY0"
/*Returns the value 100, which was inserted by the trigger.*/

SELECT SCOPE_IDENTITY() 'SCOPE_IDENTITY()0'
/* Returns the value 1, which was inserted by the
INSERT stmt 2 statements before this query.*/

SELECT IDENT_CURRENT('t7') 'IDENT_CURRENT(t7)0'
/* Returns value inserted into t7, i.e. in the trigger.*/

SELECT IDENT_CURRENT('t6') 'IDENT_CURRENT(t6)0'
/* Returns value inserted into t6, which was the INSERT statement 4 stmts before this query.*/

-- Do the following in Session 2
SELECT @@IDENTITY "@@IDENTITY1"
/* Returns NULL since there has been no INSERT action
so far in this session.*/

SELECT SCOPE_IDENTITY() 'SCOPE_IDENTITY()1'
/* Returns NULL since there has been no INSERT action
so far in this scope in this session.*/

SELECT IDENT_CURRENT('t7') 'IDENT_CURRENT(t7)1'
/* Returns the last value inserted into t7.*/


当在执行while @i < 20000
begin
set @i = @i + 1
print @i
end这个地方的时候,就可以用


INSERT t6 DEFAULT VALUES
INSERT t7 DEFAULT VALUES
select * from t6
select * from t7来进行操作数据库

等到全部执行完了,你就会发现只有SCOPE_IDENTITY列永远是1
水族杰纶 2008-10-21
  • 打赏
  • 举报
回复
@@表示全局变量,用户不能定义 如@@IDENTITY,@@ERROR
@表示局部变量,用户可以定义如:declare @I int
中国风 2008-10-21
  • 打赏
  • 举报
回复
@@IDENTITY 中包含语句生成的最后一个标识值

楼主可参照联机说明
中国风 2008-10-21
  • 打赏
  • 举报
回复
@@全局变量

@@IDENTITY --返回标识

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧