♣
在线等一个 关于声明变量的小问题 ---------------
/*下面的存储过程:总是报错,提示声明变量:@tbname,但是我已经声明了.不知道为什么?*/
create proc changspzl (@spmch1 char(60),
@spmch2 char(60),
@chgsp int,
@run_result output)
as
begin
declare @tbname char(15) /*已声明变量*/
if @chgsp=1
begin tran
declare tblist cursor for
select distinct tablename from tb_stru where fieldname=dspname order by tablename
open tblist
fetch first from tblist into @tbname
while (@@fetch_status=0)
begin
update @tbname set dspname=@spmch2 where dspname=@spmch1 /*此行提示需声明变量*/
fetch next from tblist into @tbname
end
close tblist
deallocate tblist
if @@error<>0
begin
set @run_result=-1
rollback
end else
commit tran
end
· 网友精彩回答:
update @tbname set dspname=@spmch2 where dspname=@spmch1
表 名称是不能直接使用变量的,要用:
execute(update + @tbname + set......)
改为如下
create proc changspzl (@spmch1 varchar(60),
@spmch2 varchar(60),
@chgsp int,
@run_result output)
as
begin
declare @tbname varchar(15) /*已声明变量*/
if @chgsp=1
begin tran
declare tblist cursor for
select distinct tablename from tb_stru where fieldname=dspname order by tablename
open tblist
fetch first from tblist into @tbname
while (@@fetch_status=0)
begin
exec(update +@tbname +set dspname=+@spmch2+ where dspname=+@spmch1) /*此行提示需声明变量*/
fetch next from tblist into @tbname
end
close tblist
deallocate tblist
if @@error<>0
begin
set @run_result=-1
rollback
end else
commit tran
end
create proc changspzl (@spmch1 char(60),
@spmch2 char(60),
@chgsp int,
@run_result output)
as
begin
declare @tbname char(15) /*已声明变量*/
if @chgsp=1
begin tran
declare tblist cursor for
select distinct tablename from tb_stru where fieldname=dspname order by tablename
open tblist
fetch first from tblist into @tbname
while (@@fetch_status=0)
begin
exec(update +@tbname+ set dspname=+@spmch2+ where dspname=+@spmch1+)
fetch next from tblist into @tbname
end
close tblist
deallocate tblist
if @@error<>0
begin
set @run_result=-1
rollback
end else
commit tran
end
- 更多问题:
- · 请教关于WebBrowser、MemoryStream问题
- · 昨天吃坏东西了,肠胃炎发作,躺了一天,终于用内功把毒镇住了.散分!
- · 如何删除一个类?
- · 截图问题
- · 如何调用外部程序,并把外部程序的界面放到我的界面上
- · 如何在.net中做图表?
- · 我的shell脚本怎么能运行java程序
- · ****** 数据源改动后,重新部署EJB时的问题 ******
- · JAVA中如何得到系统的日期和时间?
- · 登录控制问题
- · 大家帮我提一点建议
- · 我以前看过一段代码,是通过显示SELECT语名和别的什么语句把一个数据库的值传入另一张表中
- · [高难度]如何捕获IE浏览器的事件,如在IE里单击下载。
- · 新开一ASP.NET技术交流群,群号码:13108133,大家踊跃参加哈。
- · 怎么判断连接数据库失败在VB.NET
- · DLL 中已画好的 CBitmap oBitmap,如何能将其作为数据对象返回????
- · XHTML技术文档
- · RedHat专题 | RedHat
- · JPEG技术文档
- · IEEE技术文档
- · CGI专题 | CGI
- · Perl专题
- · 网络中间件
- · 分布式处理
- · 电源ic
- · ic卡系统
- · oracle database
- · mysql database
- · lan共享
- · 制作iso文件
- · ssl webservice
- · 分布式网络
- · 使用汇编写进注册表启动的简单例子
- · 禁用注册表有什么用处
- · 注册表在哪
- · 电脑注册表损坏时出现的十种症状
- · 怎样修改注册表
- · 如何恢复注册表啊
- · 谁有注册表恢复工具?
- · 清除所有cookies
- · 火狐浏览器下载

