存储过程中临时表的问题
在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#