当前位置:编程学习 > C#/ASP.NET >>

存储过程中临时表的问题

在dataset里新建一个tableAdapter 里选择现有的存储过程点击完成的时候出现"已生成select语句,对象名#t1无效",
这个怎么解决,#t1 是临时表... --------------------编程问答-------------------- 如果再通过记录集读数据,是不是在同一个会话里面啊?
还是 会话 中间 结束过一次了?


SQL Server
2种:本地临时 全局临时

1> -- 本地临时表.
2> CREATE TABLE #temp_table_local (
3>     id      INT,
4>     value   VARCHAR(10)
5> );
6> go

1> -- 全局临时表.
2> CREATE TABLE ##temp_table_global (
3>     id      INT,
4>     value   VARCHAR(10)
5> );
6> go



对于本地临时表,只能当前会话能检索到数据。其他会话无法检索。
对于全局临时表,其他会话也能检索到这个表的数据。

1> INSERT INTO #temp_table_local(id, value) VALUES (1, 'ONE');
2> INSERT INTO ##temp_table_global(id, value) VALUES (1, 'ONE');
3> go

(1 行受影响)

1> SELECT COUNT(1) FROM #temp_table_local;
2> SELECT COUNT(1) FROM ##temp_table_global;
3> go

-----------
          1

(1 行受影响)

-----------
          1

(1 行受影响)


另外一个会话
C:\Documents and Settings\wzq>sqlcmd -S "localhost\SQLEXPRESS"
1> use stock
2> go
已将数据库上下文更改为 'Stock'。
1> SELECT COUNT(1) FROM ##temp_table_global;
2> go

-----------
          1

(1 行受影响)


临时表在会话中创建,会话结束的时候,数据库自动删除临时表 --------------------编程问答-------------------- 首先你在SQL查询分析器里执行你的存储过程,看看有没有问题 --------------------编程问答-------------------- 首先确保存储过程本身没有任何问题
其次DataSet中填充的是Select返回的数据,不管是什么临时表或者视图 --------------------编程问答-------------------- 我也遇到了 没找到办法解决呢
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,