22,207
社区成员
发帖
与我相关
我的任务
分享
create procedure _sp1
as
insert into #tmp values('2')
create procedure _sp2
as
create table #tmp(a varchar(10))
exec _sp1
select * from #tmp
alter procedure _sp1
as
insert into #tmp values(@@spid)
go
alter procedure _sp2
as
create table #tmp(a varchar(10))
exec _sp1
select *,@@spid from #tmp
go
exec _sp2
/*
a (无列名)
493 493
*/
显然说明是在同一个会话中,会话id是 493create procedure _sp1
as
create table #tmp(a varchar(10),b varchar(10))
insert into #tmp values('C','I')
select * from #tmp
create procedure _sp2
as
create table #tmp(a varchar(10))
exec _sp1
select * from #tmp
exec _sp2
create procedure _sp1
as
create table #tmp(a varchar(10))
insert into #tmp values('a')
select * from #tmp
go
create procedure _sp2
as
create table #tmp(a varchar(10))
exec _sp1
select a from #tmp
go
exec _sp2
结果
a
1
--------------
acreate procedure _sp1
as
create table #tmp(a varchar(10),b varchar(10))
insert into #tmp values('C')
select * from #tmp
GO
create procedure _sp2
as
create table #tmp(a varchar(10))
exec _sp1
select * from #tmp
GO
exec _sp2
所以......create procedure _sp1
as
create table #tmp(a varchar(10),b varchar(10))
insert into #tmp values('C','I')
select * from #tmp
create procedure _sp2
as
create table #tmp(a varchar(10))
exec _sp1
select * from #tmp
exec _sp2
报错:Msg 213, Level 16, State 1, Procedure _sp1, Line 4
Column name or number of supplied values does not match table definition.
create procedure _sp1
as
create table #tmp(a varchar(10),b varchar(10))
insert into #tmp values('C','I')
select * from #tmp
create procedure _sp2
as
create table #tmp(a varchar(10))
exec _sp1
select * from #tmp
exec _sp2