问题标签 [newid]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
897 浏览

sql-server-2008 - 我正在将数据库从 sql server 2008 迁移到 teradata

我正在将数据库从 Sql Server 2008 迁移到 Teradata,我遇到了一个问题:

在Sql Server中一个表列的ddl定义如下:

如果用户不提供任何输入,此列使用 newid() 函数生成并在列 [rowguid] 中插入随机 varchar 值。

Teradata 中没有类似的函数来生成这个值。

在为 Teradata 创建类似的表 ddls 时,可以使用什么来代替 Sql Server 的 NEWID() 函数?

0 投票
3 回答
64587 浏览

sql - SQL Server:NEWID() 是否总是给出唯一的 ID?

NEWID()函数是否永远不会给我与它已经提供的相同的 ID?假设我选择 aNEWID()并返回“1”(仅作为示例)。它永远不会再返回“1”吗?这是不可能的吗?

0 投票
1 回答
290 浏览

sql - 如何在单个 SQL Server 查询中选择多个组的一半?

我有一个 SQL Server 2008 表,其中包含多个组中的记录,这些记录由复合组 ID(即 GroupID = Col1 + Col2 + Col3)组成,并且需要将每个组随机拆分为对照组,仅重新分配 Col1 的值,这样一半每组中的一半将留在原组中,一半将进入新组。我怎样才能在一个语句中做到这一点,这样我就不必手动遍历每个 Col2+Col3 组?

换句话说,我想做这样的事情:

0 投票
2 回答
1137 浏览

sql - 使用 NEWID() 创建主键

我有一个查询,我每晚都使用从几个不同的表中提取数据,这个拉取数据进入一个加载到我们云服务器的 upsert 表。我正在尝试为每一行设置某种类型的唯一标识符/主键,但我遇到了问题。

SELECT SUBSTRING(CAST(NEWID() AS varchar(38)), 1, 16)

每当我重新运行查询时,它都会更改NEWID()每次的值,因此它每晚都会将重复项加载到我的表中,而不是更新记录。无论如何我newid()每次运行查询时都可以保持静态值吗?

谢谢,雷切尔

0 投票
1 回答
2408 浏览

sql - 如何用实际的随机 Guid 替换 sql 脚本文件中的 NEWID()?

所以我有一个巨大的脚本文件,它将加载和加载数据到我的数据库中,这是一个示例。

不,如果不是 1000 个 NEWID() 标签,我有 100 个,但是我需要重新使用很多这些 ID。所以我想用一个实际的随机 GUID 替换所有 NEWID() 。所以输出看起来像。

我正在使用 Notepad++ 来写这个,所以如果你知道我可以在查找和替换中使用的正则表达式会很棒。或者如果你知道另一种方式。

谢谢,本

0 投票
0 回答
500 浏览

postgresql - Postgresql 使用 uuid_generate_v1() 生成错误

我正在尝试在 postgresql 中运行此查询:

我已经阅读了 sql server 的uuid_generate_v1()替换newid(),但它不起作用,并且我收到以下错误:

错误:函数 uuid_generate_v1() 不存在 提示:没有函数匹配给定的名称和参数类型。您可能需要添加显式类型转换。

什么是正确的语法?

0 投票
1 回答
7703 浏览

tsql - SQL - 5% 随机样本(按组)

我有一个大约 1000 万行和 4 列的表,没有主键。第 2 3 4 列(x2 x3 和 x4)中的数据按列 1 X1 中标识的 50 个组进行分组。

为了从表中获得 5% 的随机样本,我一直使用

结果返回大约 500,000 行。但是,如果以这种方式采样,某些组会在样本中得到不相等的表示(相对于它们的原始大小)。

这一次,为了获得更好的样本,我想从 X1 列中确定的 50 个组中的每个组中获取 5% 的样本。因此,最后,我可以获得 X1 中 50 个组中每组 5% 的行的随机样本(而不是整个表的 5%)。

我该如何解决这个问题?谢谢你。

0 投票
2 回答
4942 浏览

sql - newid() 与实体框架 6 代码优先

我想通过 Entity Framework 6 Code First 使用 newid() 设置 SQL 数据库中表的主键的默认值。我知道这是如何通过代码完成的,并且还在 stackoverflow 上找到了一些方法,例如How to set NewId() for GUID in entity framework

但是:我有一个备份/恢复机制,它不是通过对象插入数据,而是作为数据库的一个凸起插入数据。所以这里没有使用实体框架。这意味着将在 SQL 数据库中插入以 null 作为 guid 的行并失败。

可以添加注释

这将成功添加 NEWSEQUENTIALID() 作为默认值,它与 newid() 执行类似的操作(它添加了一个高于最近 guid 的新 guid,因此您赢得了性能,因为您在输入中有订单)。但是因为这是一个已经存在而没有 EF 的数据库,所以我想尽可能少地进行更改。所以我对 NEWSEQUENTIALID() 并不十分满意。如果它仍然只是 newid(),我宁愿喜欢它。但是我在 Entity Framework 6 Code First 中没有找到 newid() 的任何注释/映射。根据设计,对数据库的所有更改都必须通过代码完成。有谁知道如何通过代码将默认值 newid() 添加到行中?

提前致谢!

0 投票
1 回答
1398 浏览

sql-server - 为什么使用 NEWID() 比 NEWSEQUENTIALID() 使用更多空间?

我正在做一些研究,我遇到了一个我无法解释的异常情况(而且我在谷歌上找不到任何东西)。考虑以下 SQL:

结果:

问题

谁能解释为什么在使用 NEWSEQUENTIALID() 而不是 NEWID() 时保留/实际空间要小得多?

作为回应

我进行了以下测试以检查 Luaan 在下面给出的答案:

不同之处在于我删除了主键(这意味着该表现在是一个堆表)。现在这导致两个表的大小完全相同。这证明了该表是由其聚集索引物理组织的。

0 投票
2 回答
725 浏览

sql - Order By VarBinary 表达式未排序

在尝试生成种子随机排序时,我注意到了这个问题,现在在 SQL Server 2008 R2 (RTM) 和SEDE上都复制了,即 SQL Server 2012 (SP1):

当您ORDER BY使用VarBinarySELECT字段时,不会发生排序。

在(上述 SEDE 的)查询计划中,您可以看到没有 SORT 用于:

就像我尝试过的所有其他变体一样(您可以在 SEDE 查询中看到它们,也可以将它们编辑为ORDER BY yx)。

我查看了MSDN并且仅在索引时确认VarBinary使用MACHINE 排序规则。

这只是一个错误还是一个记录不充分的功能?:-)