如何在sql server中动态新建表?(100分)

  • 主题发起人 主题发起人 jinny
  • 开始时间 开始时间
J

jinny

Unregistered / Unconfirmed
GUEST, unregistred user!
如果是在普通的数据库中动态新建一个表的话,我可以自己实现,如下:
if not Table1.Exists then begin
with Table1 do begin
{ The Table component must not be active }
Active := False;
{ First, describe the type of table and give }
{ it a name }
DatabaseName := 'DBDEMOS';
TableType := ttParadox;
TableName := 'CustInfo';
{ Next, describe the fields in the table }
with FieldDefs do begin
Clear;
with AddFieldDef do begin

Name := 'Field1';
DataType := ftInteger;
Required := True;
end;
with AddFieldDef do begin
Name := 'Field2';
DataType := ftString;
Size := 30;
end;
end;
{ Next, describe any indexes }
with IndexDefs do begin
Clear;
{ The 1st index has no name because it is
{ a Paradox primary key }
with AddIndexDef do begin

Name := '';
Fields := 'Field1';
Options := [ixPrimary];
end;
with AddIndexDef do begin
Name := 'Fld2Indx';
Fields := 'Field2';
Options := [ixCaseInsensitive];
end;
end;
{ Call the CreateTable method to create the table }
CreateTable;
end;
由于在SQL SERVER中每一个表并不是对应于一个文件,在用这种方法在库中建表的时候遇到了
这样一个问题,就是SQL SERVER的tabletype到底是什么?
请高手解答,最好是用SQL语句实现。不胜感激。
 
用tquery,

query1.sql.clear;
query1.sql.add('create table tablename {filed1 int not null,'+
+' field2 varchar(100)}');
query1.prepare;
query1.execsql;
query1.unprepare;
 
使用createtable也可以建立sql server表的啊。
使用tQuery来建立就的了!
 
赞同 Iknow的方法,用标准Sql建表,好处多多,只要支持标准SQL的数据库都可以。
 
多人接受答案了。
 
后退
顶部