小编Mar*_*rco的帖子

postgres 如何通过命令删除模式中的所有表

我使用 postgresql,我需要删除模式中存在的所有表。如何从命令提示符中删除。

postgresql postgresql-9.4

15
推荐指数
2
解决办法
4万
查看次数

sql server:以小块更新大表上的字段:如何获取进度/状态?

我们有一个非常大(1 亿行)的表,我们需要更新其中的几个字段。

对于日志运输等,我们显然也希望将其保持为一口大小的交易。

  • 下面会做的伎俩吗?
  • 我们如何让它打印一些输出,以便我们可以看到进度?(我们尝试在其中添加 PRINT 语句,但在 while 循环期间没有输出任何内容)

代码是:

DECLARE @CHUNK_SIZE int
SET @CHUNK_SIZE = 10000

UPDATE TOP(@CHUNK_SIZE) [huge-table] set deleted = 0, deletedDate = '2000-01-01'
where deleted is null or deletedDate is null

WHILE @@ROWCOUNT > 0
BEGIN
    UPDATE TOP(@CHUNK_SIZE) [huge-table] set deleted = 0, deletedDate = '2000-01-01'
    where deleted is null or deletedDate is null
END
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql

10
推荐指数
1
解决办法
9827
查看次数

ORA-01502: 此类索引的索引或分区处于可用状态问题

我的 Oracle 数据库中有一个表,其中

select pkcol, count(*) from myTable group by pkcol having count(*) > 1;
Run Code Online (Sandbox Code Playgroud)

产量

  PKCOL   COUNT(*)
------- ----------
      1          2
      2          2
Run Code Online (Sandbox Code Playgroud)

试图删除重复的行

delete myTable where pkcol = 1;
Run Code Online (Sandbox Code Playgroud)

产量:

ORA-01502: 索引“MYTABLE.PK_MT”或此类索引的分区处于可用状态。

我正在使用 Oracle.DataAccess.Client.OracleBulkCopy 来填充表格。

据我了解,必须检查Oracle PRIMARY KEY 约束的文档。

显然它们没有被检查,正如我通过连续两次执行相同的批量复制而发现的,这些批量复制以所有行中的重复结束。

现在我只在删除所有行后才使用它,并且我正在使用一个具有类似主键的表作为源。因此,我预计不会有任何问题。

但是深深嵌入到我的 MS Build 脚本中,我最终在 2210 行中只有 2 个重复。

我想首先忽略主键是一个明显的错误。不允许批量复制忽略主键约束。

编辑:

同时我发现,在调用bulkcopy之前,通常由某个脚本插入的2个冲突行。问题归结为我的已知问题,bulkcopy 不会在这里检查主键。

oracle-11g bulkcopy

8
推荐指数
2
解决办法
7万
查看次数

SSRS 和托管服务帐户 - 无法配置?

我们正在尝试将 Reporting Services 配置为使用托管服务帐户。环境是:

服务器:Windows 2008 R2 SP1 报告服务:SQL Server 2012(版本 11.0.6567.0)

目前,SSRS 作为域服务帐户运行,但我们希望更改为作为 MSA 运行。SQL Server 实例和代理均已成功更改为使用 MSA。

当我尝试通过 Reporting Services 配置管理器将服务帐户更改为 MSA 时,收到错误消息:

Microsoft.ReportingServices.WmiProvider.WMIProviderException:帐户名无效。以域\别名的形式指定一个帐户。

---> System.Runtime.InteropServices.COMException (0x8004021D): 来自 HRESULT 的异常:0x8004021D --- 内部异常堆栈跟踪结束 --- 在 Microsoft.ReportingServices.WmiProvider.RSWmiAdmin.ThrowOnError(ManagementBaseObject mo) 在 Microsoft.ReportingServices .WmiProvider.RSWmiAdmin.SetWindowsServiceIdentity(String accountName, SecureString password, Boolean useBuiltinAccount) at ReportServicesConfigUI.WMIProvider.RSReportServerAdmin.SetWindowsServiceIdentity(String accountName, SecureString password, Boolean useBuiltinAccount)

我的问题很简单:

有没有人成功更改 SSRS 服务帐户以使用托管服务帐户?如果是,怎么办?!

sql-server ssrs sql-server-2012

8
推荐指数
2
解决办法
5118
查看次数

在另一台机器上恢复rman备份时如何更改临时文件的路径,重做日志文件?

我正在尝试使用 rman 备份将我的数据库 ( 11.2.0.4 ) A迁移到另一台机器。目前,在源机中,redo log文件,temp文件存放在目录foo( /foo)下。在目标机器中,我想将这些文件存储在目录栏 ( /bar) 下。在过去的实践中,我所做的是为这些文件创建foo,并在恢复完成后手动将这些文件移动到bar。RMAN 是一个如此强大的工具,我认为必须有一些简单的方法来满足我的要求。到目前为止,通过搜索谷歌,我得到了一个有用的临时文件 rman 命令:

set newname for tempfile <fileno> to '<path>'
Run Code Online (Sandbox Code Playgroud)

重做文件好像没有类似的命令。在使用此命令执行恢复之前,我有几个问题要问:

  1. 我们做全量备份的时候,备份的时候没有带临时表空间和重做文件,但是在过去的迁移中,我发现alter database open resetlogs恢复完成后打开( )数据库时,存在重做日志文件和临时文件。rman 会自动为数据库创建这个吗?我找不到有关此主题的可靠 oracle 文档。
  2. 更改重做路径太无聊了,我会在 rman 脚本中完成此任务,是否有任何命令可用于重命名 rman 脚本中的重做日志文件?

oracle oracle-11g-r2 rman

6
推荐指数
1
解决办法
1万
查看次数

不能在准备好的语句中插入多个命令

当我在 PG 管理查询工具中尝试时,此查询对我有用:

UPDATE bankdetails SET bank_details = 'mysore' ,"PAN"= 123,bank_acc = 456,
                       "UAN"=789,tax = 'myy'
WHERE  user_id = 79;
INSERT INTO bankdetails (user_id,bank_details,"PAN",bank_acc,"UAN",tax)
       SELECT 79,'mysore',123,456,789,'myy'
       WHERE NOT EXISTS (SELECT 1 FROM bankdetails WHERE user_id=79);
Run Code Online (Sandbox Code Playgroud)

后来我在我的代码中是这样实现的:

db.query('UPDATE bankdetails SET bank_details = $2 ,"PAN"= $3,bank_acc = $4,"UAN"=$5,tax = $6 WHERE user_id = $1; INSERT INTO bankdetails (user_id,bank_details,"PAN",bank_acc,"UAN",tax) SELECT $1,$2,$3,$4,$5,$6 WHERE NOT EXISTS (SELECT 1 FROM bankdetails WHERE user_id = $1);', [companyuser.rows[0]._id, data.bankDetails.bank_details, data.bankDetails.PAN, data.bankDetails.bank_acc, data.bankDetails.UAN, data.bankDetails.tax],function(err,bank) {

                if (err) return callback(new …
Run Code Online (Sandbox Code Playgroud)

postgresql postgresql-9.6

6
推荐指数
1
解决办法
2万
查看次数

从多列中选择 MIN 值

我有一个非常基本的数据库,用于跟踪 6 个不同事件的分数。每个事件包含 4 个事件。

我的当前 SQL 查询非常基本,看起来与下面的非常相似;

Select Name, 
       SUM(ISNULL(p.e1_e1_points, 0)+ISNULL(p.e1_e2_points, 0)+ISNULL(p.e1_e3_points, 0)+ISNULL(p.e1_e4_points, 0)) AS Event1, 
       SUM(ISNULL(p.e2_e1_points, 0)+ISNULL(p.e2_e2_points, 0)+ISNULL(p.e2_e3_points, 0)+ISNULL(p.e2_e4_points, 0)) AS Event2,
       SUM(ISNULL(p.e3_e1_points, 0)+ISNULL(p.e3_e2_points, 0)+ISNULL(p.e3_e3_points, 0)+ISNULL(p.e3_e4_points, 0)) AS Event3,
       SUM(ISNULL(p.e4_e1_points, 0)+ISNULL(p.e4_e2_points, 0)+ISNULL(p.e4_e3_points, 0)+ISNULL(p.e4_e4_points, 0)) AS Event4,
       SUM(ISNULL(p.e5_e1_points, 0)+ISNULL(p.e5_e2_points, 0)+ISNULL(p.e5_e3_points, 0)+ISNULL(p.e5_e4_points, 0)) AS Event5,
       SUM(ISNULL(p.e6_e1_points, 0)+ISNULL(p.e6_e2_points, 0)+ISNULL(p.e6_e3_points, 0)+ISNULL(p.e6_e4_points, 0)) AS Event6
       from points
Run Code Online (Sandbox Code Playgroud)

我需要能够添加一个额外的列,它是列(事件 1、事件 2、事件 3 等)中的最小值。

sql-server

6
推荐指数
2
解决办法
6万
查看次数

SQL 数据库备份启动后是否可以停止它?

我希望在 SQL Server 2008 中对 SQL 数据库进行完整的数据库备份。

我的问题是:

  • 如果备份耗时太长或速度太慢,我可以在备份开始后停止、暂停或取消备份吗?备份只是一份工作,我会停止工作吗?
  • 做备份的时候,能不能查看进度,看一下预计的备份完成时间?如果是这样,您如何看待它的进展?

sql-server-2008 sql-server backup

5
推荐指数
1
解决办法
3万
查看次数

何时使用 DISTINCT

什么时候用好SELECT DISTINCT ..,什么时候不好用?

基本上,每当我看到DISTINCT关键字时,我就会开始变得谨慎,因为大多数情况下最终会发现实际查询存在一些问题(选择性不够、连接不良、逻辑不正确等)。

你有类似的经历还是只是我?

sql-server

5
推荐指数
1
解决办法
2461
查看次数

由于 FK 约束,报告订阅删除失败

我们有许多 SSRS 报告定时订阅(SQL Server 2008R2 SP4)。我们的一位报告开发人员尝试删除报告订阅,但出现以下错误:

报表服务器数据库中出现错误。这可能是由于数据库中的连接失败、超时或磁盘空间不足造成的。(rsReportServerDatabaseError) 获取联机帮助 DELETE 语句与 REFERENCE 约束“FK_ReportSchedule_Subscriptions”冲突。冲突发生在数据库“ReportServer”、表“dbo.ReportSchedule”、“SubscriptionID”列中。该语句已终止。

我通过从ReportServer.dbo.ReportSchedule表中手动删除计划记录解决了这个问题。

步骤如下:

1、找到需要删除的相关订阅。

SELECT sub.SubscriptionID, 
       rs.ScheduleID,
       SUB.[Description] 
       ,SUB.EventType 
       ,SUB.DeliveryExtension 
       ,SUB.LastRunTime
FROM dbo.Subscriptions AS SUB 
INNER JOIN dbo.Users AS USR ON SUB.OwnerID = USR.UserID 
INNER JOIN dbo.ReportSchedule AS RS ON SUB.Report_OID = RS.ReportID
                            AND SUB.SubscriptionID = RS.SubscriptionID 
WHERE SUB.Description like '%**Mail reciepient here**%'
ORDER BY sub.Description
Run Code Online (Sandbox Code Playgroud)

2. 找到防止记录被删除的相关时间表。

SELECT [ScheduleID]
      ,[ReportID]
      ,[SubscriptionID]
      ,[ReportAction]
FROM [ReportServer].[dbo].[ReportSchedule]
WHERE SubscriptionID = '**GUID HERE**'
Run Code Online (Sandbox Code Playgroud)

3.备份表

SELECT * 
  INTO [ReportServer].[dbo].[ReportScheduleBackup]
  FROM [ReportServer].[dbo].[ReportSchedule] …
Run Code Online (Sandbox Code Playgroud)

sql-server constraint ssrs sql-server-2008-r2

5
推荐指数
1
解决办法
702
查看次数