RETURN 从查询或过程中无条件退出。RETURN 即时且完全,可在任何时候用于从过程、批处理或语句块中退出。不执行位于 RETURN 之后的语句。 --建立测试表 drop table tbtest go create table tbtest(id int)--测试的SQL语句块 insert into tbtest select 11 return alter table tbtest add name varchar(10) --测试语句块结束--查看表 select * from tbtest /* id ----------- 11(所影响的行数为 1 行) */ --name字段并没有增加到表中不知道楼主是怎样测试的.
fishmans(金脚指) GOTO 也不管用 脚本文件时SQL SERVER生成的
在更新脚本的开头加上DECLARE @cver varchar(7) SELECT @cver=cversion FROM sys_version IF @cver IS NOT NULL BEGIN IF @cver >= '2.99' BEGIN PRINT '服务器已经更新到2.99' RETURN END END-- 打印了:'服务器已经更新到2.99' 后续的语句照样执行:(
return 後面應該要加個返回值的吧 DECLARE @cver varchar(7) SELECT @cver=cversion FROM sys_version IF @cver IS NOT NULL BEGIN IF @cver >= '2.99' BEGIN PRINT '服务器已经更新到2.99' RETURN 0 END END 試試
select 1
return
select 2
--result
-----------
1(所影响的行数为 1 行)
if (@error<>'') goto SqlEnd
.............
.........
SqlEnd:
return
return --加了return,则只输出1一条.不加return,则输入1,2两条
select 2
但是我的脚本文件包含很多表\存储过程的更新,RETURN并不退出
从查询或过程中无条件退出。RETURN 即时且完全,可在任何时候用于从过程、批处理或语句块中退出。不执行位于 RETURN 之后的语句。
--建立测试表
drop table tbtest
go
create table tbtest(id int)--测试的SQL语句块
insert into tbtest
select 11
return
alter table tbtest add name varchar(10)
--测试语句块结束--查看表
select * from tbtest
/*
id
-----------
11(所影响的行数为 1 行)
*/
--name字段并没有增加到表中不知道楼主是怎样测试的.
GOTO 也不管用
脚本文件时SQL SERVER生成的
SELECT @cver=cversion FROM sys_version
IF @cver IS NOT NULL
BEGIN
IF @cver >= '2.99'
BEGIN
PRINT '服务器已经更新到2.99'
RETURN
END
END--
打印了:'服务器已经更新到2.99'
后续的语句照样执行:(
DECLARE @cver varchar(7)
SELECT @cver=cversion FROM sys_version
IF @cver IS NOT NULL
BEGIN
IF @cver >= '2.99'
BEGIN
PRINT '服务器已经更新到2.99'
RETURN 0
END
END
試試