回 帖 发 新 帖 刷新版面

主题:怎样使存储过程变“活”

[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个回复)

沙发

你可以把ds表名改动就可以了。

板凳

我的意思是在不修改存储过程的前题下。

比如把存储过程某个部分做成变量。在
我下次调用的时候,对变量重新赋值。
使它产生出一个新的表。

若是每次调用都修改存储过程。不如直接
建立一个表来的容易。

3 楼

用另外一个存储过程调用这个存储过程。把那个ds换成参数

4 楼

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 楼

这样有什么用,表结构又不是都一样的

6 楼

那小弟就不会了!看哪位高人会,我也想学学!

我来回复

您尚未登录,请登录后再回复。点此登录或注册