我有一个Access数据库,在其中删除表,然后重新创建表。 但是,我需要能够测试该表,以防该表被删除但未被创建(即当有人在DTS包启动后立即停止它-roll-eyes-)。 如果在SQL数据库中执行此操作,我将执行以下操作:

IF (EXISTS (SELECT * FROM sysobjects WHERE name = 'Table-Name-to-look-for'))
BEGIN
drop table 'Table-Name-to-look-for'
END

但是,如何为Access数据库执行此操作?

可选答案:有没有一种方法可以让DTS包忽略该错误,而直接转到下一步而不是检查它是否存在?

SQL Server 2000

===============>>#1 票数:1 已采纳

我不确定是否可以从DTS包中查询Access数据库中的系统对象表。

如果这不起作用 ,为什么不尝试从有问题的Access表中执行SELECT *,然后失败时捕获错误呢?

===============>>#2 票数:1

Microsoft Access有一个称为MSysObjects的系统表,其中包含所有数据库对象(包括表)的列表。 表对象具有类型1、4和6。

引用类型很重要:

...其中Name ='TableName'并输入(1,4,6)

否则,返回的内容可能是表以外的某个对象。

===============>>#3 票数:1

尝试使用相同的T-SQL,但是在MS ACCESS中,sys对象表称为:MSysObjects。

尝试这个:

SELECT * FROM MSysObjects WHERE Name = 'your_table';

看看它是否可以从那里工作。

如果转到工具->选项->视图(一个选项卡)->并选中“隐藏对象”,“系统对象”,则可以查看这些表。 这样您就可以看到两者。 如果打开表,则应该看到表名,查询等。请勿手动更改此设置,否则数据库可能会出现恐慌:)

马丁

PD:如果存在,还应检查对象类型:

IF EXISTS (SELECT * FROM sysobjects WHERE id = object_id(N'[dbo].[Your_Table_Name]') AND OBJECTPROPERTY(id, N'IsUserTable') = 1)

  ask by Keng translate from so

未解决问题?本站智能推荐:

2回复

DTS软件包和访问连接

使用DTS,我正在动态创建一个访问数据库。 创建文件后(此时可以使用),我正在DTS包中通​​过HTTP将其发布到另一个站点。 (此HTTP只是必须完成的操作-规范的一部分。) 但是,当软件包发布文件时,发布的版本以0字节文件的形式出现。 发布文件的代码已经过测试,并且代码执行良好。
2回复

通过JET密码访问DTS

我有三年没有接触过的SQL 2000 DTS程序包。 包每天晚上运行都没有问题,现在我需要进行一些更改。 程序包从几个设置了密码的Access文件中读取数据。 当我在DTS设计器中打开Access连接并单击“确定”时,出现错误消息“无效密码”。 为什么现在密码错误,但是当软件包每
5回复

将Access数据库转换为SQL Microsoft DTS - 数据类型“130”不在映射文件中

我正在尝试将大型Access .mdb数据库导出到SQL Server数据库,并且一直遇到Microsoft DTS无法识别访问数据库中特定类型字段的数据类型的问题。 我查看了相关的访问表,并将它们设置为长度为1的“文本”。如果填充,它们包含单个Y或N值,但也可以具有空值。 我一直在
1回复

搜索旧版DTS中更新的表

我在SQL Server 2008中有旧版DTS的列表,我正在寻找将行更新/插入到某些表的DTS。 有什么办法吗? 也许用文字搜索? 谢谢!
3回复

DTS - 完全合格的表名称问题

我有一个在SQL Server 2005数据库上运行的SQL DTS包,在大多数情况下,它可以正常工作。 但是,有时它失败了,我无法弄清楚原因。 该软件包包含一个SQL任务,它创建了一堆临时表,一堆数据转换,然后是另一个SQL任务,最后删除在第一步中创建的临时表。 由于表是第一步中
3回复

如何将表从SQL Server即时导出到MS Access?

我想将SQL Server 2k的一些数据发布到msaccess数据库。 给定一个提供数据转换信息的表,我想这样做,例如: 应该创建给定的mdb文件(或者当然是复制一个空文件),并且每次脚本运行时都应该创建表。 我当然不需要完整的解决方案,但是非常欢迎您从哪里入手。 我以为我会
1回复

使用DTS传输表具有多个所有者的数据库架构

我在SQL 2005中有一个数据库架构,想要复制到SQL 2000服务器中。 它包含具有多个所有者的表。 当我尝试创建DTS包以传输模式时,由于某些表具有相同的名称(但所有者不同),我遇到冲突。 看起来它正在尝试使所有表都归dbo拥有。 有没有办法保留目标服务器上的所有权?
5回复

使用SQL Server DTS包有条件地在目标表中插入/更新行

我想创建一个DTS包,以将数据从Oracle表提取到SQL2K表中。 如何插入SQL2K表中尚未存在的行并更新SQL2K表中已存在的行? 我想我可以截断并重新填充整个表,或者创建一个临时表,然后从temp表向目标表中进行更新/插入。 有使用DTS的任何简便方法吗? 谢谢,
2回复

DTS导入失败

我有一个电子表格。 它包含公司信息,例如姓名,地址,电话,电子邮件等。我要做的只是将SQL平面导入到它可以创建的表中,这样我就可以对其进行一些处理。 我只是在使用MS SQL导入向导。 我没有使用BCP。 它一直到最后,并给我这个错误: Blockquote操作已停止...
2回复

DTS-调试技巧

在我所处的遗留项目中,我们有几个通过DTS执行的处理。 DTS并不是我在嘿嘿日工作的很多东西....我在大学里。 更具体,这些过程在ActiveX代码块中 - 基本上是数据库的VBScript。 调试真的很难。 无论如何,我想知道过去或现在有经验的DTS专业人员是否可以提供有关如