declare @i int
if object_id('tempdb..#t1')is not null
drop table #t1
go
create table #t1(id int,name varchar(50))
set @i=1
select @i
上面语句不加go的时候运行正常,加了go后就报错说‘必须声明变量@i’
这是为什么?
------解决思路----------------------
declare @i int
這個移到go後面
go是執行上段腳本的意思,後面腳本沒有申明@i
------解决思路----------------------
GO 带表一个批次的结束 当然有问题了。
------解决思路----------------------
用GO区分了两个SQL批处理批次
局部变量@i的作用域不能超过批次
------解决思路----------------------
go代表结束
------解决思路----------------------
这样代码好看一些。你变量声明和引用用go来结束,肯定会报错
if object_id('tempdb..#t1')is not null
drop table #t1
go
create table #t1(id int,name varchar(50))
go
declare @i int
set @i=1
select @i
------解决思路----------------------
GO是批的结束标志,按照你的逻辑,不需要中间加一个go
------解决思路----------------------
这样用时 go是批次,变量只会在同一批次时有效
------解决思路----------------------
把GO去掉
declare @i int
if object_id('tempdb..#t1')is not null
drop table #t1
create table #t1(id int,name varchar(50))
set @i=1
select @i