小编Mac*_*ver的帖子

Oracle 连接结束时“.WORLD”的意义

在 Oracle 连接名称的末尾有“.WORLD”有什么意义?我发现没有那个后缀的东西仍然可以连接。我还注意到客户端 tnsnames.ora 文件和服务器 tnsnames.ora 文件都必须具有此后缀(或根本没有)才能进行通信。

oracle connections tnsnames sqlnet

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

在 SQL Server 2008 中查找全文索引

如何查找在给定数据库上应用了 FULLTEXT INDEX 的表列表?

例如,您可以像这样启用和禁用 FULLTEXT INDEX:

ALTER FULLTEXT INDEX ON [dbo].[OBJECT_FACT] ENABLE

ALTER FULLTEXT INDEX ON [dbo].[OBJECT_FACT] DISABLE
Run Code Online (Sandbox Code Playgroud)

index sql-server-2008 sql-server full-text-search

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

MSSQL 中模式的 GRANT CONTROL 有什么作用?

我使用 SQL Server 2016 进行这些测试。

以下不允许我在模式 S 中为用户 U 创建表

USE [D];
GRANT CONTROL ON SCHEMA :: [S] TO [U];
Run Code Online (Sandbox Code Playgroud)

但这确实:

USE [D]
GRANT ALTER ON SCHEMA :: [S] TO [U];
GRANT CREATE TABLE TO [U];
Run Code Online (Sandbox Code Playgroud)

如果您必须运行这两个附加命令以允许用户在特定模式中创建表,那么 GRANT CONTROL 应该做什么?

这个描述很好,但是我可以运行什么样的用例来确认(成功或失败)GRANT CONTROL 命令在运行该命令之前和之后在物理上影响用户在使用和不使用此模式的数据库上的安全性?

https://blogs.msdn.microsoft.com/lcris/2009/08/11/basic-sql-server-security-concepts-ownership-control-take-ownership/

CONTROL 权限:CONTROL 权限可用于轻松地将某个实体的所有权限授予某个主体。它是实体所有权之后的下一个最好的东西,但它不如所有权那么强大。主要区别在于 CONTROL 的被授予者仍然可以被拒绝对实体的一些其他权限。例如,我可以在一个表上被授予 CONTROL,同时我可以在那个表上被拒绝 SELECT,从而阻止我从中选择——这永远不会发生在所有者身上,因为所有者不能被授予或拒绝权限.

security sql-server permissions access-control table

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

在保留 IDENTITY 的同时将行插入其他表

我正在 SQL Server 表上执行 ETL 逻辑。我要将数据从一张表同步到另一张表。对于需要基于源表添加到目标表的所有记录,我正在对目标表中的这些行进行插入。架构将其中一列定义为标识列。因此 SQL Server 会自动增加插入的新行的 id。因为我要移动现有的 id,所以我需要删除标识,插入这些行,然后重新应用标识,然后重置种子以使其与源表匹配。这如何以编程方式完成?

  1. 我可以从现有列中删除身份声明吗?
  2. 我可以将现有列标记为身份吗?
  3. 如何重置标识列的种子?

sql-server-2008 sql-server etl t-sql identity

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

Oracle 模式的开源工具比较

我正在寻找一个开源工具来生成 DDL 脚本。许多工具将这些同步脚本称为。我们本质上想比较不同环境的模式(即:DEV 到 QA,QA 到 PROD)以更轻松地管理对象迁移/部署。Oracle 是否存在这样的开源工具?

schema oracle migration deployment ddl

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

两个不同的创建索引命令之间的差异

这两个脚本之间有区别吗?或者,第一个脚本的所有额外标记/属性(即:NONCLUSTEREDWITH...等...)是否都是 SQL Server 2008 中第二个脚本的默认值?

1脚本:

CREATE UNIQUE NONCLUSTERED INDEX [DEID_MAP_IDX1] ON [dbo].[DEID_MAP]
(
    [VISIT_NUM] ASC
) WITH 
  (PAD_INDEX  = OFF, 
   STATISTICS_NORECOMPUTE  = OFF, 
   IGNORE_DUP_KEY  = OFF, 
   ALLOW_ROW_LOCKS = ON, 
   ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

2脚本:

CREATE UNIQUE INDEX [DEID_MAP_IDX1] ON [DEID_MAP] 
(
    [VISIT_NUM] ASC
);
Run Code Online (Sandbox Code Playgroud)

仅供参考:在执行批量数据加载之前,有 ETL 代码使用此脚本删除索引,然后最后使用上面的第二个脚本重新创建索引。

DROP INDEX [deid_map_idx1] ON [deid_map] WITH ( ONLINE = OFF );
Run Code Online (Sandbox Code Playgroud)

编辑:

应用上面的简单索引(第二个脚本)后,我得到了这个:

SQL Server Management Studio > 扩展表 …

index sql-server-2008 sql-server

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

禁用索引和删除约束并重建 SQL Server 表的最快方法

下面是我们在一个有几十亿条记录的表上运行的一些 T-SQL 命令。像这样的 5 个表占用了数据库的大部分大小。在不引起任何问题的情况下执行这些步骤的最快方法是什么?仅运行第一个命令就需要一个多小时。删除整个表并重新创建它会更容易吗?或者,对于这么多数据,这是不可能和安全的吗?谁能想到任何其他想法来加快速度?我们只是试图截断数据,然后在我们的 ETL 过程中从头开始重建表。

        DROP INDEX [OF_IDX_ClusteredConcept] ON [dbo].[OBS_FACT] WITH ( ONLINE = OFF )
        ALTER TABLE OBS_FACT DROP CONSTRAINT OBS_FACT_PK
        ALTER INDEX ALL ON OBS_FACT disable;

        -- add new data to OBS_FACT table via ETL process

        ALTER TABLE [dbo].[OBS_FACT] ADD CONSTRAINT [OBS_FACT_PK] PRIMARY KEY NONCLUSTERED 
        (
            [ENCOUNTER_NUM] ASC,
            [CONCEPT_CD] ASC,
            [PROVIDER_ID] ASC,
            [START_DATE] ASC,
            [MODIFIER_CD] ASC,
            [INSTANCE_NUM] ASC
        ) ON [PRIMARY]

        CREATE CLUSTERED INDEX [OF_IDX_ClusteredConcept] ON [dbo].[OBS_FACT] 
        (
            [CONCEPT_CD] ASC
        );  

        -- REBUILD indexes on OBSERVATION_FACT …
Run Code Online (Sandbox Code Playgroud)

index sql-server clustered-index t-sql drop-table

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

Oracle 中默认架构的名称是什么?

当您在 Oracle 中创建对象并且未指定架构(对象前缀)时,该默认架构是否有名称?我在 Oracle SQL Developer 中看到,当没有指定前缀时,新创建的对象会出现在根对象节点中,而不是模式对象节点中。

在模式 X 下创建表:

X.table_1

在默认架构下创建表:

表格1

schema oracle oracle-sql-developer

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

在一次执行中运行许多 CREATE VIEW 和 GRANT SELECT 语句

有没有办法通过在 SQL Server Management Studio 中按 F5 来运行多个 CREATE VIEW 命令和/或多个 GRANT SELECT 命令?如果是这样,我该怎么做?

sql-server ssms view

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