300分求SQL语句(300分)

  • 主题发起人 主题发起人 drawpharos
  • 开始时间 开始时间
D

drawpharos

Unregistered / Unconfirmed
GUEST, unregistred user!
1、如何获得数据库中所有表的表名(好像是 desc 表名)[red][50分][/red]
2、如何获得一张表的所有字段名和类型、长度?[red][150分][/red]
3、如何向一张已有的表中增加新的字段?[red][100分][/red]

要求:最好是标准SQL语句,适用于大部分SQL数据库,如果实在不行只要支持MS SQL。
 
下面是支持mssql 的
1. select * from sysobjects where type ='U'
2. select * form syscolumns

3.ALTER TABLE table
{ [ALTER COLUMN column_name
{ new_data_type [ (precision[, scale] ) ]
[ NULL | NOT NULL ]
| {ADD | DROP} ROWGUIDCOL
}
]
| ADD
{ [ <column_definition> ]
| column_name AS computed_column_expression
}[,...n]
| [WITH CHECK | WITH NOCHECK] ADD
{ <table_constraint> }[,...n]
| DROP
{ [CONSTRAINT] constraint_name
| COLUMN column
}[,...n]
| {CHECK | NOCHECK} CONSTRAINT
{ALL | constraint_name[,...n]}
| {ENABLE | DISABLE} TRIGGER
{ALL | trigger_name[,...n]}
}




 
to :[red]chshanghai[/red]
1、已验证,但是还有更好的,就是利用系统表TABLES,不仅保存表的名称,还保存试图名称等。
2、我用的MSSQL2000个人版,没有你所说的表,只有COLUMNS表,里面存储了所有表的结构。
3、正在验证过程中。

分暂时不发,我记得有更简单的SQL语句,而不是从系统表里去查询。
继续等待,如果3天内没有人在提出更简单的语句,立刻发分。

如果有更好的语句,分大家按照贡献大小来分。[:)]
 
1、Select * from sysobjects WHERE OBJECTPROPERTY(id, N'IsUserTable') = 1
2、select * from syscolumns
where Id=(select ID from dbo.sysobjects where id = object_id(N'[dbo].
') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
3、ALTER TABLE Tablename ADD columnName INT NULL
 
1.TADOConnection.GetTableNames
2.DataSet.Fields
3.ALTER TABLE Tablename ADD columnName INT NULL
 
填加字段:
declare tempstr varchar(300),field_name (20)
set tempstr='alter table table_name add '+field_name+' char(20)'
exec(tempstr)
 
使用ADOX可以完成你要的所有功能。不是用SQL语句的。
 
hbezwwl: 那些控件不好控制,而且不如SQL来的效率高,这可是每次次操作都要做的工作
因此我希望直接用SQL来实现。
 
你到什么时候发分啊,我的语句不行吗?
我都测试过了
 
我记得在oracle中有一个sql能直接查出表名和表信息,
现在忘记了,sql 2000不知有没有?
 
我用的MSSQL2000个人版,没有你们所说的syscolumns表,只有COLUMNS表,里面存储了所有表的结构。
我用这张表,而且这张表的结构更加简单和明了。

谢谢各位!

hbezwwl:Sorry,你没看清题目,所以没分。
 
后退
顶部