很是奇怪,存储过程中如果先是insert,最后select,就不会输出列名。
而如果反之,先select,再做insert,就会输出列名。
可我现在就是想插入一个表,然后再select出来,应该怎样处理呢?
而如果反之,先select,再做insert,就会输出列名。
可我现在就是想插入一个表,然后再select出来,应该怎样处理呢?
解决方案 »
- 请高手帮忙.MSSQL里的 ORDER BY ,GROUP BY,HAVING这三个的具体用法和分别
- sql server 2000 卸载不了,真郁闷!
- 数何只读取第10行到第20行的数据?
- SQL Server (SQLEXPRESS) 服务因 %%17113 服务特定错误而停止。
- “select top 10 distinct picID,picPath from pic”怎么改啊?
- 可能发生了架构损坏。请运行 DBCC CHECKCATALOG
- 莱鸟自学SQL遇到问题
- 如何能够获取数据库中每个表的最后一次数据被修改时间?
- 请问我的触发器代码错在那儿??
- 关于exec master..xp_cmdshell 'bcp……'问题,请高手帮忙
- 有关openrowset:[Microsoft][ODBC 驱动程序管理器] 驱动程序不支持此功能],急~
- 求一个计算时间的函数
没听懂没关系,举个例子
create table tmpa (int a)
create procedure def
as
truncate table tmpa
declare @i int
set @i=100
select @i as a
insert into tmpa select @i,@i+1DataReader里执行存储过程def,你会发现刷新后列映射里会出现列a
然后你改下存储过程
drop procedure def
go
create procedure def
as
truncate table tmpa
declare @i int
set @i=100
insert into tmpa select @i,@i+1
select @i as a你会发现刷新后列映射里的列a没了!!!
谁能告诉我这是为什么?!
create procedure def
as
truncate table tmpa
declare @i int
set @i=100
select @i as a
insert into tmpa select @i DataReader里执行存储过程def,你会发现刷新后列映射里会出现列a
然后你改下存储过程
drop procedure def
go
create procedure def
as
truncate table tmpa
declare @i int
set @i=100
insert into tmpa select @i
select @i as a DataReader里执行存储过程def,
你会发现刷新后列映射里的列a没了!!!
谁能告诉我这是为什么?!
不用列名直接用索引好呢?
例如:DataReader[0]
DataReader不再认为def存储过程有返回结果集。
难道必须先select吗?
create proc dbo.up_test
as begin
declare @tb table(test1 int,test2 int)
insert into @tb(test1,test2)
(select 1,2 union all
select 2,3 union all
select 2,4
)
select * from @tbend
go
exec up_test
go
drop proc up_test
但是,但是,
我说的是在ssis包,用DataReader执行存储过程up_test,
你会发现映射列里并没有显示返回的结果集!
set fmtonly off;
set nocount on ;
exec def这样应该可以刷新出来的,这个问题是SSIS的数据源读取存储过程的一个问题,一般发生在出现将数据
插入表变量,临时表等操作时,数据源无法正确刷新。
另外问一下
set fmtonly off;
set nocount on ;
这两句什么意思?用完后要重新设置回去吗?
就是只取表结构, 即where 1=0set nocount on
不返回影响行数我也是学习中。感谢whbo