1.create procedure [dbo].[sysdb] as
2.declare @rs as table (name nvarchar(50))
3.insert into @rs select cast(name as varchar(50)) from sysdatabases
4.select * from @rs1.创建存储过程
2.定义表变量
3.向表变量插入值
4.查询表变量在执行该过程时存储过程虽然可以很好地反映@rs表值出来,SQL SERVER会返回两个消息:(5 行受影响)(5 行受影响)VB大多数编程语言都会收到两个结果集RECORDSET,很明显我们需要的是第二个结果集,而不是第一个空的结果集,虽然编程语言中也可以明确指定是第二个结果集(如:RS.NextRecordset),但是程序也有不便修改的时候.试问有什么办法,在第3句语句向临时表插入记录时,可不可以不使用INSERT INTO或不产生一个空的结果集?菩萨,救救我吧.
阿门.. .
.
2.declare @rs as table (name nvarchar(50))
3.insert into @rs select cast(name as varchar(50)) from sysdatabases
4.select * from @rs1.创建存储过程
2.定义表变量
3.向表变量插入值
4.查询表变量在执行该过程时存储过程虽然可以很好地反映@rs表值出来,SQL SERVER会返回两个消息:(5 行受影响)(5 行受影响)VB大多数编程语言都会收到两个结果集RECORDSET,很明显我们需要的是第二个结果集,而不是第一个空的结果集,虽然编程语言中也可以明确指定是第二个结果集(如:RS.NextRecordset),但是程序也有不便修改的时候.试问有什么办法,在第3句语句向临时表插入记录时,可不可以不使用INSERT INTO或不产生一个空的结果集?菩萨,救救我吧.
阿门.. .
.
create procedure [dbo].[sysdb] as
declare @rs as table (name nvarchar(50))
select cast(name as varchar(50)) as name from sysdatabases
select cast(name as varchar(50)) as name from sysdatabases
insert into @rs select ...................................................
........................超长的SQL语句......................................
..........................................................................如果接下来的SQL语句还要调用"超长的SQL语句"就可以直接用@RS代替了.所有表变量有着不可替代的用处.select sum(col) from @rs
union all
select avg(col) from @rs
union all
select count(col) from @rs这就是表变量的优势
SET NOCOUNT ON
declare @rs as table (name nvarchar(50))
insert into @rs select cast(name as varchar(50)) from sysdatabases
select * from @rs
2.declare @rs as table (name nvarchar(50))
SET NOCOUNT ON
3.insert into @rs select cast(name as varchar(50)) from sysdatabases
SET NOCOUNT OFF
4.select * from @rs