可以使用
select @i = 1
和
set @i = 1
两种方式
这两种方式有什么区别呢?
这两种方式没有差别
select @i = 1
和
set @i = 1
这种情况下没有差别
通常 select * from ...where ....(用于查询比较多)
update ... set ... from ... where ....(用于修改表数据)
select 可以对多个参数赋值,而 Set 只能对一个参数赋值。
select @a = 1 , @b = 2 , @c = 3 是有效的,
但
Set @a = 1 , @b = 2 , @c = 3 则是无效的。
总体的来说, 在功能使用上来说, select 完全可以替代 set 。
set 可以实现的功能 , select 都可以实现。 而 set 却不能替代select 。
我感觉上 SET 是一个怪物,但MSSERVER help 文档却鼓励使用 set 。
SET:将先前使用 DECLARE @local_variable 语句创建的指定局部变量设置为给定的值。
可以使用
select @i = 1
和
set @i = 1
两种方式
這樣沒有差別,得到一樣的結果
select @i = 1
和
set @i = 1
两种方式 --没有区别的。
-- 执行以下的语句看看效果
declare @Var int
set @var = 1
print @@rowcount
select @var = 1
print @@rowcount
select 可以给多个变量赋值
set 只能给一个变量 赋值
指定将给定的局部变量设置为指定的表达式。
建议将 SET @local_variable 而不是 SELECT @local_variable 用于变量赋值。
SELECT @local_variable指定将给定的局部变量设置为指定的表达式。
建议将 SET @local_variable 用于变量赋值。
一個是查詢一個是設置值