如何定义一个全局变量

wllllll 2010-11-11 12:19:45
DECLARE @data int;

MSSQL只可以定义一个局部变量,执行完毕后就会清除这个局部变量
如何定义全局变量,不会导致修改或者读这个变量而写硬盘,变量完全在内存中执行.
这个变量会在没有的时候创建或在SQL启动时创建..

求解.

有位大人叫我用一个表来做,但是这样会写硬盘, 而且可能会导致很频繁.
还有位大人叫我ALTER FUNCTION.....

...全文
255 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
wllllll 2010-11-11
  • 打赏
  • 举报
回复
但是又不想用NEWID()
wllllll 2010-11-11
  • 打赏
  • 举报
回复
我只是想自动创建一个绝对不重复的ID而已.
不是自增涨的ID
wllllll 2010-11-11
  • 打赏
  • 举报
回复
全局通配符? 不理解..时间戳也不行..
-晴天 2010-11-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wllllll 的回复:]
默认时间格式为: 2000-1-1 2:2:2:2:i
因为在计算机执行中,取得当前时间,可能会导致获取的时间相同,所以在时间最后面增加一个i,
如果发现获取的时间和最后一次获取的时间相同, 那么这个时间在继续在末位加1.这样就可以让一个时间格式的字符绝对不重复.而且不会对表进行查询判断最大时间.
[/Quote]
这个和主题有关吗?
如果是要想获得不重复的值,最简单的就是使用时间戳或全局通配符.
-晴天 2010-11-11
  • 打赏
  • 举报
回复
可以考虑定义存储过程或函数获得一个或多个固定的值,特别是,由于存储过程运行一次后便编译并存于内存,因此不会频繁读盘.
王向飞 2010-11-11
  • 打赏
  • 举报
回复
可以考虑联合主键的问题,一个时间列一个ID列
wllllll 2010-11-11
  • 打赏
  • 举报
回复
默认时间格式为: 2000-1-1 2:2:2:2:i
因为在计算机执行中,取得当前时间,可能会导致获取的时间相同,所以在时间最后面增加一个i,
如果发现获取的时间和最后一次获取的时间相同, 那么这个时间在继续在末位加1.这样就可以让一个时间格式的字符绝对不重复.而且不会对表进行查询判断最大时间.
-晴天 2010-11-11
  • 打赏
  • 举报
回复
全局变量以 SQL Server 系统内部函数的形式使用。存储的通常是一些SQL Server的配置设定值和系统统计数据。在使用全局变量时应该注意以下几点:
全局变量是在服务器级定义的。
用户只能使用预先定义的全局变量。
引用全局变量时,必须以标记符“@@”开头。
全局变量对用户来说是只读的。
局部变量的名称不能与全局变量的名称相同。

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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