H huawdg Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #1 我想在存储过程中动态创建表,表的名称由外部作为参数传入。
A armyjiang Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #2 这种操作都需要在存储过程中使用动态SQL语句的作法。 表名作为参数时,你在存储过程中需要动态组成建表语句,而不能以参数的方式代入。 看你用什么样的数据库。 oracle: dbms_sql系统包 sql server: 好象是直接exec
这种操作都需要在存储过程中使用动态SQL语句的作法。 表名作为参数时,你在存储过程中需要动态组成建表语句,而不能以参数的方式代入。 看你用什么样的数据库。 oracle: dbms_sql系统包 sql server: 好象是直接exec
H huawdg Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #3 谢谢armyjiang,请问具体应该怎么做? 我用的是Interbase,您也可以用熟悉的数据库为我举个例子。
A armyjiang Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #4 只是示意: 传入参数:istr : tabname(f1 number not null,f2 char(20) not null) 在存储过程中, tmpstr : 'create table ' + istr oracle: dbms_sql.open, dbms_sql.parse, dbms_sql.execute, dbms_sql.close sql server: exec tmpstr
只是示意: 传入参数:istr : tabname(f1 number not null,f2 char(20) not null) 在存储过程中, tmpstr : 'create table ' + istr oracle: dbms_sql.open, dbms_sql.parse, dbms_sql.execute, dbms_sql.close sql server: exec tmpstr
D delphing Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #5 CREATE PROCEDURE [DyTab] @TabName varchar(20) as Exec('Create Table dbo.' + @TabName + ' (ID int NOT NULL, NAME Char(10) Null)') go
CREATE PROCEDURE [DyTab] @TabName varchar(20) as Exec('Create Table dbo.' + @TabName + ' (ID int NOT NULL, NAME Char(10) Null)') go
W wenhong Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #6 存储过程 CreateTalbe(@TableName Varchar(30)) Exec ( 'Create Table '+@TableName+' (Code Varchar(6))' 就可以了
H huawdg Unregistered / Unconfirmed GUEST, unregistred user! 2002-09-05 #7 谢谢大家的参与! 我失望地告诉大家,经过再次仔细查阅Interbase文档,它竟然不支持这样的语句。 看来我要改行了。