K:存储过程中能动态create table 吗?(50分)

  • 主题发起人 主题发起人 孔枫
  • 开始时间 开始时间

孔枫

Unregistered / Unconfirmed
GUEST, unregistred user!
作个存储过程实现在 MS SQL 中建个表,然后计算另一个表的数据插入新表
中,新表的名字是调用存储过程时传的参数。
create table @tablename 不行。
有别的方法实现以上功能吗?
 
当然可以

CREATE PROCEDURE createtable @@tablename varchar(40)
AS
exec ('create table '+ @@tablename+' (firstfield char(10),second...)')


程序中 createtable 'mytable'
 
晚上试试
‘@’是变量符号
那"@@"是什么意思?
 
多写了一个@而已,
过程肯定没问题。
 
刀兄:谢了
存储过程可以写了
没写过存储过程,试着写的时候又在调用上出了点问题:
存储过程这样:
CREATE PROCEDURE createtable
@tablename varchar(20)
AS
exec('create table'+ @tablename + '(id int ,ch char(10))')
程序中:
storedproc1.Parambyname('@tablename').asstring:='dbo';
storedproc1.Prepare;
storedproc1.ExecProc;
错误是:Incorrect syntax near 'tabledbo';

这是怎么回事呢?

 
你应该认真一点看我的例子:create table后面有一个空格,
否则出来的SQL语句 create table dbo ...
就变成了create tabledbo ...
当然出错了!

这种低级的错误大家偶尔都会犯一点,不必脸红! :-)
 
哈哈
真想笑~~~
多谢多谢了

 
后退
顶部