怎样在SQL Server存储过程中使用临时表?

icyer 2002-08-19 10:44:01
我建立了一个存储过程:
CREATE PROCEDURE Test @CustomerID char(5)
AS

CREATE TABLE #tb
(
col char(5)
)
INSERT INTO #tb (col) VALUES (@CustomerID)
SELECT col FROM #tb
DROP TABLE #tb

然后在VB中调用:
Dim param As New ADODB.Parameter
param.Direction = adParamInput
param.Name = "@CustomerID"
param.Size = 5
param.Type = adChar
param.Value = "aaaaa"
Dim cmd As New ADODB.Command
cmd.ActiveConnection = conn
cmd.CommandText = "Test"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Append param

Dim rs As New ADODB.Recordset
Set rs = cmd.Execute

现在得到的rs,状态是关闭的。也就是说rs.State为0,无论做什么操作都会报错。
应该怎么做?
Thanks.
...全文
863 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
icyer 2002-08-20
  • 打赏
  • 举报
回复
Thanks.
nan1102 2002-08-20
  • 打赏
  • 举报
回复
Dim rs As New ADODB.Recordset
xx = "aaaaa"
str = "exec test '" & xx & "'
rs.Open str, cnnmydb, adOpenStatic, adLockReadOnly
If Not (rs.EOF And rs.BOF) Then
………………
end if

'你好,这样是试一下,还不行的话,可以先不要删掉临时表看看结果。最主要的是
你的存储过程在sql查询分析器中是否通过。(你的应该没问题)
saucer 2002-08-20
  • 打赏
  • 举报
回复
try


CREATE PROCEDURE Test @CustomerID char(5)
AS

CREATE TABLE #tb
(
col char(5)
)

set nocount on
INSERT INTO #tb (col) VALUES (@CustomerID)
set nocount off
SELECT col FROM #tb
DROP TABLE #tb

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧