关于表的操作问题。请指教
点击次数:23 次 发布日期:2008-11-27 18:37:35 作者:源代码网
|
源代码网推荐
源代码网整理以下
1,如何判断表、查询是否存在?
2,如何动态建立查询
3,某表已有,怎样动态增加字段和默认值
4,如何删除表、查询
5,如何动态修改某个字段属性、删除某个字段
要求sql语句实现。
---------------------------------------------------------------
(问): 怎样使用一个查询获得数据库对象的名称(查询/窗体/表/报表/模块/宏)?
(答): 请详细参阅ADO参考文档中OpenSchema
(答): Access 系统表 MsysObjects 包含了数据库对象列表, 尽管未在文档中记载, 你仍可通过查询它来获取你想要的.
注: 请不要有意或无意地修改任何ACCESS系统表,否则会出现不可意料的情况.
使用下列 SQL 语句来获取你想要的
查询:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)=5 ORDER BY MSysObjects.Name;
窗体:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)=-32768 ORDER BY MSysObjects.Name;
表:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (Left$([Name],4) <> "Msys") AND (MSysObjects.Type)=1 ORDER BY MSysObjects.Name;
报表:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)= -32764 ORDER BY MSysObjects.Name;
模块:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)= -32761 ORDER BY MSysObjects.Name;
宏:
SELECT MSysObjects.Name FROM MsysObjects WHERE (Left$([Name],1)<>"~") AND (MSysObjects.Type)= -32766 ORDER BY MSysObjects.Name;
2、动态建立查询用 create view等 ddl语句
3、jet sql对默认值无此功能,需要使用adox
4、删除表用 drop table
5、用alter table得 ddl语句
源代码网供稿. |