如何判断数据库中一个表是否已经存在?不存在就创建一个!存在就补充数据
如何判断数据库中一个表是否已经存在?不存在就创建一个!存在就补充数据
请指教!~!
问题点数:0、回复次数:8Top
1 楼elliot(!逸轩)回复于 2003-06-02 00:27:22 得分 0
SQL语句:
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create ...
else
update ...
GO
Top
2 楼liguiman(li)回复于 2003-06-02 07:37:44 得分 0
同意
Top
3 楼hhzh426(春之风)回复于 2003-06-02 08:32:46 得分 0
如果是用oledbconnection连接数据源的话,可以用OleDbConnection.GetOleDbSchemaTable的方法获取数据库中的所有表。Top
4 楼hhzh426(春之风)回复于 2003-06-02 08:34:26 得分 0
MSDN上的例子
以下示例返回数据库中的表的列表。
[Visual Basic]
Public Function GetTables(conn As OleDbConnection) As DataTable
conn.Open()
Dim schemaTable As DataTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
New Object() {Nothing, Nothing, Nothing, "TABLE"})
conn.Close()
Return schemaTable
End Function
[C#]
public DataTable GetTables(OleDbConnection conn)
{
conn.Open();
DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
new object[] {null, null, null, "TABLE"});
conn.Close();
return schemaTable;
}Top
5 楼cenpy(cenpy)回复于 2003-06-02 13:33:59 得分 0
if not exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[表名]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
create ...
else
update ...
GO
能解释一下这条语句吗?dbo.sysobjects和N'[dbo].[表名]是怎么回事?
Top
6 楼csdnshao(如水人生)回复于 2003-06-02 13:55:54 得分 0
表名-->你要创建的表的名字
dbo.sysobjects-〉你指定数据库中的对象集合
这一句,如果你指定的表不存在当前数据库,创建,否则。。。
Top
7 楼wengjw(小面)回复于 2003-06-02 14:42:01 得分 0
[dbo]模式名,其实就是你登陆到数据库服务器的用户名Top
8 楼cenpy(cenpy)回复于 2003-06-02 15:30:27 得分 0
给个示范语句吧~
详细点好吗?
谢谢!Top




