精华内容
下载资源
问答
  • 对于刚开始使用arcsde的用户,可能会出现各种问题,慢慢来就会找到解决办法 ...我们可以换一个表空间的路径或者到服务器去把文件删除就行了 转载于:https://www.cnblogs.com/jinqier/p/3987676.html...

    对于刚开始使用arcsde的用户,可能会出现各种问题,慢慢来就会找到解决办法

    当我们删除用户和表空间时,在服务器本地还保留这sde.dbf文件(删除时选择了删除本地文件,不知道为什么),

    我们可以换一个表空间的路径或者到服务器去把文件删除就行了

    转载于:https://www.cnblogs.com/jinqier/p/3987676.html

    展开全文
  • 、总结1、没有部署触发器和开启审计的情况,想知道某张表是被哪个用户删除的,可以使用系统函数fn_dblog结合系统的默认跟踪找到;2、需要注意的是系统默认提供5跟踪文件,默认大小都是20MB,实例重启的时候...

    一、总结

    1、当没有部署触发器和开启审计的情况,想知道某张表是被哪个用户删除的,可以使用系统函数fn_dblog结合系统的默认跟踪找到;

    2、需要注意的是系统默认提供5个跟踪文件,默认大小都是20MB,当实例重启的时候或者达到最大值的时候,会重新生成新的文件,

         将最早的跟踪文件删除,依次滚动更新,所以删除表后间隔的时间太长,也是找不到结果的;

    3、fn_dblog函数简介

      * 使用fn_dblog函数我们可以查看当前数据库的事物日志文件的记录(活动的日志,备份走的日志用该函数查不到);

           * 官方并未公开此函数的用法,在生产环境,慎用此命令!!!;

      * 2个参数:

        参数1:日志开始序列号位置(LSN),输入NULL,表示从日志开始位置返回结果;

        参数2:日志结束序列号位置(LSN),输入NULL,表示查找到日志最后的结束位置;

    4、通过sys.fn_dblog最后定位到的结果,只能显示object_id,找不到具体的表名,如果有多个用户做了大量的drop操作时,找出的结果也非常多,可能得不到想要的结果;

    5、如果在删除表时,用户指定了事物名称,在使用sys.fndblog查找结果的时候,[Transaction Name]的值必须使用用户指定的事物名称才能出结果;

    cdd751ed31f22cf0d5b377ab70660b77.png

    e240221da94369127fb6391b2f117b45.png

     6、如果在删除表时,用户手动开启了事物,但是并没有指定事物名称,在使用sys.fndblog查找结果的时候,[Transaction Name]的值要使用user_transaction才能有结果;

    9f48bebd77f0fd613f3e65231316cb10.png

     ca4d81ad1f2cf5dc70fd48958f47eeef.png

    二、操作步骤

    1、准备测试数据

    use testgocreate table student (id int,name nvarchar(20))goinsert into student values(1,'jack')insert into student values(2,'rose')select * from student

    53baf9abf6662b8229665de080b72cf2.png

     2、查看student表的object_id(和一会找出来的对比一下是否一致)

     命令:

    select * from test.sys.objects where name='student'

    9968f095a16a5d46212c3f716835e2f3.png

     3、创建一个具有test库dba权限的用户dbinfo

    26578e4d6058f9c1a1045ac5f57b9249.png

    4、使用dbinfo用户登录数据库删除student表

    d95fb747643588dbd9b7c2319e5118fe.png

     4ff7ae799ce89eeca17b5f499e122d88.png

     5、使用系统函数sys.fn_dblog找出相关信息

    use testgoselect [Transaction ID],[Transaction Name],[Begin Time],[Server UID],SPIDfrom sys.fn_dblog(NULL,null)where [Transaction Name]='DROPOBJ'go

    536acfbf6dc4faca133754e672d7df20.png

     6、根据事物ID,找出被删除的对象

    select  [Lock Information] from sys.fn_dblog(NULL,NULL)where [Lock Information] like '%SCH_M OBJECT%' and [Transaction ID]='0000:00000d8e'go

    156fd8109a773e806defe476b05db136.png

      结果:HoBt 0:ACQUIRE_LOCK_SCH_M OBJECT: 7:597577167:0 

     结果中OBJECT后面的信息就是删除的对象的信息:

    7---->代表DB_ID

    597577167------>代表object_id,也就是被删除对象的object_id(发现和上面我们删除之前查询的object_id一致, 显然现在通过这个object_id已经查不到结果了,因为已经删除了)

    7、找出SQLServer中默认的trace的path路径

    命令:

    select * from sys.traces where is_default =1

    6e6572493ef842aaf4969722c60ffc2e.png

     8、根据trace path,事务ID、object_id、开始时间、SPID等信息找到对应的trace信息

    select  DatabaseID,NTUserName,HostName,ApplicationName,LoginName,          SPID,ObjectID,StartTime, EventClass,EventSubClassfrom  sys.fn_trace_gettable('C:\Program Files\MicrosoftSQLServer\MSSQL12.MSSQLSERVER\MSSQL\Log\log_148.trc',1)where SPID = 61         and  StartTime >= '2020/07/23 11:00:15:780'          and ObjectID = '597577167'go

    f4065244ee3443a6006668821c55e521.png

    参考网址:

     https://www.cnblogs.com/Joe-T/p/3191416.html

    展开全文
  • 在操作某张表的时候,如果你你要对那张表进行修改删除操作的时候,工具会提示:“”当前记录已被另一个用户锁定",这时候就是因为那张表已经被锁,想操作的话只能把这张表的锁解调就可以了, 首先,执行sql...

    之前有遇到过这个问题,解决后没有记录下来,导致今天又忘记怎么解决了,又白白浪费了时间,今天就把解决方法记录下来,为了自己也给遇到这个问题的朋友一个参考:


    当在操作某张表的时候,如果你当你要对那张表进行修改删除操作的时候,工具会提示:“”当前记录已被另一个用户锁定",这时候就是因为那张表已经被锁,想操作的话只能把这张表的锁解调就可以了,

    首先,执行sql查询出当前所有被锁的表:

    查询sql如下:

                   SELECT object_name, machine, s.sid, s.serial#
                   FROM gv$locked_object l, dba_objects o, gv$session s
                   WHERE l.object_id = o.object_id
                   AND l.session_id = s.sid;


    查询出来后,找到你要操作的表,找到其对应的sid和serial#的值,执行解锁sql

    sql如下:

                  ALTER system kill session 'sid, serial#';



    即可将锁住的表进行解锁操作!


    注:当前用户权限不足,执行第一个sql查询会提示表不存在,可以使用sys登陆后给用户赋权后则可:grant select  any dictionary to XXXX;

    展开全文
  • 当删除了倒数第二节点,链表变为 1->2->3->5. 说明: 给定的 n 保证是有效的。 进阶: 你能尝试使用趟扫描实现吗? 通过次数205,209 提交次数524,857 分析: 这题的难度在于如何在

    题目链接:

    LeetCode #19 删除链表的倒数第N个节点

    题目描述:

    #19. 删除链表的倒数第N个节点

    给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。

    示例:

    给定一个链表: 1->2->3->4->5, 和 n = 2.

    当删除了倒数第二个节点后,链表变为 1->2->3->5.
    说明:

    给定的 n 保证是有效的。

    进阶:

    你能尝试使用一趟扫描实现吗?

    通过次数205,209 提交次数524,857

    分析:

    这个题的难度在于如何在一趟扫描中实现,想要找到链表的倒数第 n 个节点,其实就是链表尾和被删节点之间的长度为 n。

    可以用 双指针 实现,定义两个指针 i, j

    • i 指向头结点 headj 指向正数第 n 个节点;
    • i, j 同时向后走,当 j 走到链表尾时,i 也就走到了倒数第 n 个节点;
    • 由于我们的目的是删除节点,为了方便进行删除操作,我们让 j 走到倒数第 2 个节点,这样 i 刚好走到倒数第 n 个节点 的前一个节点,直接让 i.next = i.next.next 就可以完成删除操作;
    • 注意 当要删除的节点为第一个节点时j 初始化的节点是链表表尾的下一个,即 j == null,这种情况 直接返回 head.next 即可,否则 j.next 会出现空指针错误。

    代码:

    /**
     * Definition for singly-linked list.
     * public class ListNode {
     *     int val;
     *     ListNode next;
     *     ListNode(int x) { val = x; }
     * }
     */
     /*
     *  双指针,分别指向 head 和正数第 n 个结点
     * 两个指针都向后走,当靠后的指针走到倒数第二个位置时,靠前的链表走到即倒数第 n 个的前一位
     */
    class Solution {
        public ListNode removeNthFromEnd(ListNode head, int n) {
            ListNode i = head, j = head;
            for(int k = 0; k < n; k++){ j = j.next;}
            if(j == null) {//说明要删除的是正数第 1 个结点
                return head.next;
            }
            while(j.next != null){
                j = j.next;
                i = i.next;
            }
            i.next = i.next.next;
            return head;
        }
    }
    

    虽然有两部分循环,但是分析一下其实总共走了一趟

    比如,要删除的是倒数第 1 个节点,给 j 初始化的循环(第一部分循环)走了一整趟,但是此时就不会再进入第二个循环了;

    同理,如果要删除的是倒数第 k 个元素,第一部分循环走了 k 次,而第二部分循环走的是剩下的 链表长度 - k 次,总体来说还是走了一整趟。

    提交截图如下:
    在这里插入图片描述

    展开全文
  • 表删除

    2019-06-27 16:46:40
    很多的数据查询都是用到联查询的, 如果如删除那样操作无疑是错误, 还会堆积垃圾数据甚至导致数据库运行缓慢 那需要删除查询出来的数据又该怎么做呢? ...这时应该给用户一个是否删除...
  • 删除还原空间

    千次阅读 2013-07-14 09:34:21
    一个还原空间没用了,可以将其删除...也可以使用以下的方法删除一个活动的还原空间; *切换到一个新的还原空间 *等所有当前的事务完成删除该还原空间 例如: SQL> drop tablespace longshen_undo inc
  • 当删除了倒数第二节点,链表变为 1->2->3->5. 说明: 给定的 n保证是有效的。 进阶: 你能尝试使用趟扫描实现吗? 来源:力扣(LeetCode) 链接:...
  • 执行结果: 通过 显示详情 执行用时 :1 ms, 在所有 Java 提交中击败了64.16% 的用户 内存消耗 :35 MB, 在所有 Java 提交中击败了19.08%的用户 ...给定一个链表,删除链表的倒数...当删除了倒数第二个节点,链表...
  • 首先你应该明白闪回删除操作的对象仅仅是表,它允许...被drop的表重命名的表名 以及drop之前的名字等等信息, 我们已经知道rname 一个表并不会改变表的对象号,当用户发出drop table 命令,在内部已经把它映射到re
  •  我们在显示了数据,并会提供row_id给用户删除对应的记录,row_id是唯一的,可以保证能正确删除对应的数据了,但是如果我们为了方便.在删除时,并不加上user_id = 操作者id时,那么,就会存在一个
  • 判断临时是否存在(临时删除)

    千次阅读 2013-10-11 11:02:42
    以下是在网上搜索的一个说明: ...当用户从 SQL Server 实例断开连接时被删除。 全局临时的名称以两个数字符号 (##) 打头,创建对任何用户都是可见的,当所有引用该的用户从 SQL Server 断开连接时被删除
  • 试图从QT上的数据库中删除我有一个连接的应用程序,让用户插入数据库中的学生有一个选项,可以在插入在表格上显示他们。中有一个DELETE按钮,用于每个插入学生,我已经连接到单独的函数让用户可以根据学生单独...
  • (1) recyclebin是一个逻辑结构.是由数据字典来实现的.(2) recyclebin中数据对象的删除是遵循先进先出方式.(3) 及其依赖对象进入recyclebin,它们占用的空间在dba_free_space中显示为可用空间。(4) 及其...
  • 临时变量区别 临时与永久相似,但临时存储在 tempdb 中,当...当用户从 SQL Server 实例断开连接时被删除。全局临时的名称以两数字符号 (##) 打头,创建对任何用户都是可见的,当所有引...
  • ”,试了几次一直是这错误,删除表后重建,然后还是发生了这错误。于是寻求谷歌的帮助,发现已经有很多人碰到过这问题了(毕竟已经2010年了嘛)。 原来是当用户在在SQL Server 2008企业管理器中更改表结构时,...
  • ,试了几次一直是这错误,删除表后重建,然后还是发生了这错误。于是寻求谷歌的帮助,发现已经有很多人碰到过这问题了(毕竟已经2010年了嘛)。  原来是当用户在在SQL Server 2008企业管理器中更改表结构时,...
  • 人们构建简单的视图引用程序,这是另一个常见的​​问题。同样的,它比你想象的更容易。但在进入编码部分,我打算给你介绍一个程序员使用最多的设计模式,用户界面​​编程的模型 - 视图 - 控制器模式(Model-...
  • 业务运行段时间,会出现有些数据量很大,可能对系统性能产生不良的影响,常见的如订单、登录log等,这些数据很有时效性,比如我们一般很少去查上月的订单,最多也就是报表统计会涉及到。在我们的...
  • 业务运行段时间,会出现有些数据量很大,可能对系统性能产生不良的影响,常见的如订单、登录log等,这些数据很有时效性,比如我们一般很少去查上月的订单,最多也就是报表统计会涉及到。在我们的...
  • 人们构建简单的视图引用程序,这是另一个常见的​​问题。同样的,它比你想象的更容易。但在进入编码部分,我打算给你介绍一个程序员使用最多的设计模式,用户界面​​编程的模型 - 视图 - 控制器模式(Model...
  • SQL Server临时

    2012-02-08 21:01:15
    转帖: 临时与永久相似,但临时存储在 tempdb 中,当不再...当用户从 SQL Server 实例断开连接时被删除。全局临时的名称以两数字符号 (##) 打头,创建对任何用户都是可见的,当所有引用该的用户从 S

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 539
精华内容 215
关键字:

当用户删除一个表后