SQL Server数据库中的DF__role_sett__custo__4589517F是什么意思?

时间:2017-08-10 15:28:39

标签: sql sql-server sql-server-2008

我刚刚从另一个开发人员那里继承了一个数据库,我查看了DF__role_sett__custo__4589517F表,按约束过滤。

DF_role_sett_custo是什么意思 - 主要是字符串末尾的ID?

我知道role_setting_customer表示4589517f的默认约束,但我不确定最后一个ID import { UserClass } from './user'; import { query, Client } from 'faunadb'; import { FaunaClass } from '../class'; console.log('init', typeof UserClass, typeof FaunaClass, typeof query); export function initialise (client : Client) { return new Promise((resolve, reject) => { const CLASSES : (typeof FaunaClass)[] = [ UserClass ]; let count = 0; const total = CLASSES.length; console.log('classes', CLASSES); CLASSES.forEach(cl => client.query(query.CreateClass({ name: cl.className })) .then(checkDone) .catch(reject)); function checkDone () { count += 1; if (total === count) { resolve(); } } }) .catch(e => { console.log('on catch', UserClass); console.log(e.message); }); }

1 个答案:

答案 0 :(得分:1)

如果在创建约束时没有命名约束,SQL Server将根据表和列为其分配一个随机名称。它附加一个随机数,以便它不会与现有的约束名冲突。

在几乎所有情况下,最好在创建约束时命名约束。然后,更容易在其他T-SQL语句中通过名称引用约束。

例如,在以下create语句

CREATE TABLE dbo.some_table(
   some_field INT NOT NULL DEFAULT(5)
);

默认约束将被分配一个随机名称。在这个声明中:

CREATE TABLE dbo.some_table(
   some_field INT NOT NULL CONSTRAINT DF_some_table_some_field DEFAULT(5)
);

默认约束将具有您为其指定的名称(即DF_some_table_some_field)。