主题:怎样使存储过程变“活”
小小小牛牛牛
[专家分:0] 发布于 2006-10-04 08:57:00
[b]这是我建立的一个存储过程:[/b]
CREATE PROCEDURE jlbiao AS
if exists (select *from sysobjects where name='ds')
begin
drop table ds
end
create table ds
(stuno int,
stuname char(10),
stuage int check(stuage>15 and stuage<30),
)
[b]第一次调用它可以建立一个名为“ds”表。
请问各位大哥:
在下一次调用它时,我想建立另一张表
应该怎么办?[/b]
回复列表 (共6个回复)
沙发
zhangsan5421 [专家分:140] 发布于 2006-10-04 09:49:00
你可以把ds表名改动就可以了。
板凳
小小小牛牛牛 [专家分:0] 发布于 2006-10-04 09:54:00
我的意思是在不修改存储过程的前题下。
比如把存储过程某个部分做成变量。在
我下次调用的时候,对变量重新赋值。
使它产生出一个新的表。
若是每次调用都修改存储过程。不如直接
建立一个表来的容易。
3 楼
kkzjk [专家分:440] 发布于 2006-10-04 13:23:00
用另外一个存储过程调用这个存储过程。把那个ds换成参数
4 楼
lgt9732 [专家分:170] 发布于 2006-12-28 14:18:00
CREATE PROCEDURE jlbiao
(
@tablename varchar(10)
)
AS
if exists (select *from sysobjects where name = @tablename)
begin
declare @str varchar(100)
set @str = 'drop table' +' '+@tablename
exec(@str)
end
declare @str1 varchar(100)
set @str1 = 'create table'+' ' + @tablename + '
(stuno int,
stuname char(10),
stuage int check(stuage>15 and stuage<30),
)'
exec(@str1)
go
试试看行不行/
5 楼
啊来 [专家分:0] 发布于 2007-01-06 15:33:00
这样有什么用,表结构又不是都一样的
6 楼
lgt9732 [专家分:170] 发布于 2007-01-08 09:00:00
那小弟就不会了!看哪位高人会,我也想学学!
我来回复