如何生成这样的sql语句

hongsushou 2003-11-19 06:39:26
用ado连接
先得倒所用得用户表,生成所有用户表的建表语句导出道文本文件
最好有代码
...全文
94 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
jamesguo 2003-11-21
  • 打赏
  • 举报
回复
我这里现在没有SQL Server,只能凭记忆写一些,希望有些帮助
用户表和字段信息在SysObjects表中存储,(这些可以查看SQL Server的Transact-SQL帮助)
//预处理,自己写一下
ADOQuery_main.SQL.Text := ' SELECT * FROM SysObjects where ';
//得到表的名称等信息
ADOQuery_main.Open;
// ....
while not ADOQuery_main.Eof do
begin
//预处理,自己写一下
ADOQuery_Sub.SQL.Text := Format(' SELECT * FROM SysTables ',[ADOQuery_main.FieldByName('Name').AsString]); ADOQuery_Sub.Open;
//得到相应表的字段等信息
if ADOQuery_Sub.RecordCount >0 then
begin
//
mySQLString := ' CREATE TABLE ' + ADOQuery_Sub.FieldByName('Name').AsString;
while not ADOQuery_Sub.Eof do
begin
//mySQLString := MySQLString + 字段名 + 字段信息;
   
end;
//
end;
end;

suton 2003-11-21
  • 打赏
  • 举报
回复
不需要一个一个的生成,可以一次全部生成的。
txlicenhe 2003-11-21
  • 打赏
  • 举报
回复
企业管理器->服务器->数据库->右键->生成SQL脚本->常规->全部显示->
全部表(若要生成整个数据库的脚本,选编写全部对象脚本)->设置格式->全部打勾->
选项->根据需要打勾->确定,生成一个脚本文件即可。
fraul 2003-11-21
  • 打赏
  • 举报
回复
s.Connect('GuoBo', 'sa', '');
第一个参数为数据库服务器的名称
Edit1.Text为数据库名
Edit2.Text为表名
fraul 2003-11-21
  • 打赏
  • 举报
回复
我刚试过,保证成功
界面上有:
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
注意要引用uses SQLDMO_TLB;


源码如下
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses SQLDMO_TLB;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var s:_SQlServer2;
t:_Table;
d:_DataBase;
w:WideString;
begin

s:=CoSqlServer2.Create;
s.LoginSecure:=false;
s.Connect('GuoBo','sa','');
d:=s.Databases.Item(Trim(Edit1.Text),'dbo');
t:=d.Tables.Item(Trim(Edit2.Text),'dbo');
Memo1.Lines.Text:=t.Script(SQLDMOScript_Default,
NULL,
NULL,
SQLDMOScript2_Default);

end;
end.
「已注销」 2003-11-20
  • 打赏
  • 举报
回复
自己用代码生成脚本=数据库建模软件的反向工程了,可要花一段时间才行,慢慢研究吧
lybdata 2003-11-20
  • 打赏
  • 举报
回复
我对mssql不是太熟,但是在oracle里好象有一个表,记录当前用户下所有的表格名称,这样你就可以实现你的想法了。
hongsushou 2003-11-20
  • 打赏
  • 举报
回复
我想生产脚本存为文本文件
很多表
用企业管理器我知道一个一个的生成
Z9J8 2003-11-20
  • 打赏
  • 举报
回复
能取到所有的表就可以用ADOX来取它们的结构字段名及字段类型,建表的SQL应该大家都会的。
kingting 2003-11-20
  • 打赏
  • 举报
回复
表的创建信息是放在syscoment中的
要想得到其原始语句,得进行一些处理
如果你的目的是想导出所有表的脚本
用企业管理器就可以了…
suton 2003-11-19
  • 打赏
  • 举报
回复
Enterprise Manager ---右键点数据库,选择 所有任务----生成SQL脚本,点 全部显示,然后选择全部表,点预览,就得到了。

如果要用SQL语句,就只能select name from sysobjects where xtype='u'得到所有表名,SQL脚本就不知道怎么生成了。
ideacao 2003-11-19
  • 打赏
  • 举报
回复
是不是指生成该表的sql脚本啊
hongsushou 2003-11-19
  • 打赏
  • 举报
回复
ms sql server
railgunman 2003-11-19
  • 打赏
  • 举报
回复
不明白说的是什么意思?
yfjyz 2003-11-19
  • 打赏
  • 举报
回复
什么数据库呢?
frogshero 2003-11-19
  • 打赏
  • 举报
回复
要是能俺也想知道
zsjzwj 2003-11-19
  • 打赏
  • 举报
回复
这个问题好象是用SQL语句解决不了的

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧