注册 登录
编程论坛 SQL Server论坛

怎样使存储过程变“活”

小牛 发布于 2006-10-03 19:29, 666 次点击
这是我建立的一个存储过程:

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),
)

第一次调用它可以建立一个名为“ds”表。
请问各位大哥:
在下一次调用它时,我想建立另一张表
应该怎么办?
5 回复
#2
神经塔2006-10-04 10:10

还是这样写就行,因为你在你的语句上面有删除表的功能了@!

#3
小牛2006-10-04 10:46
我不想删原表,第二次建立一个新表,名字不是ds,是别的表。
#4
小牛2006-10-04 10:52
比如把存储过程某个元素做成变量,
在下一次调用的时候对变量赋新值。
#5
kkzjk2006-10-04 13:23
用另外一个存储过程调用这个存储过程。把那个ds换成参数
#6
LouisXIV2006-10-06 08:00
--未测试,只限自由更换表名,表结构无法变换
--调用方法exec jibiao 'tablename'

CREATE PROCEDURE jlbiao
(@tablename)
AS
declare @sql varchar(8000)
select @sql=
'if exists (select * from sysobjects where name='''+@tablename+''')
begin
drop table '+@tablename+'
end
create table '+@tablename+'
(stuno int,
stuname char(10),
stuage int check(stuage>15 and stuage<30),
)'
exec (@sql)
1