更新
以下是查询结果的约束
SELECT * FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_NAME = 'history'
CONSTRAINT_NAME COLUMN_NAME ORDINAL_POSITION
PK_history userKey 1
PK_history name 2
以下是查询的结果
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME = 'history'
CONSTRAINT_NAME CONSTRAINT_TYPE IS_DEFERRABLE INITIALLY_DEFERRED
PK_history PRIMARY KEY NO NO
END UPDATE
我的主机通过ASP.NET企业管理器为我的SQL Server数据库提供了一个接口。
我的history
表中有3列:
userId
(key,int,NULL not allowed)name
(密钥,字符串,不允许NULL)id
(不是key,int,允许NULL)我想让id列成为唯一的密钥。
要做到这一点,我相信我需要:
但是,当我使用提供的UI时,它永远不会起作用。有时它看起来只是尝试做某事但是当我刷新列的视图时它永远不会改变。它偶尔会创建一个临时表,看起来它试图执行某些操作,但永远不会被复制/覆盖我正在尝试更改的原始表。
当我尝试使用查询时,更改也不会显示。以下是我认为我需要的查询:
SELECT * from history WHERE id is NULL <---- This shows 0 results
ALTER TABLE history
ALTER COLUMN id int NOT NULL
ALTER TABLE history ADD PRIMARY KEY (id)
ALTER TABLE history
DROP CONSTRAINT userId
DROP CONSTRAINT name
GO
我只是试图禁止NULL并为id列添加主键。它似乎不起作用。有人能指出我正确的方向吗?谢谢!
答案 0 :(得分:68)
假设您当前的主键约束名为pk_history,您可以替换以下行:
ALTER TABLE history ADD PRIMARY KEY (id)
ALTER TABLE history
DROP CONSTRAINT userId
DROP CONSTRAINT name
用这些:
ALTER TABLE history DROP CONSTRAINT pk_history
ALTER TABLE history ADD CONSTRAINT pk_history PRIMARY KEY (id)
如果您不知道PK的名称,可以使用以下查询找到它:
SELECT *
FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS
WHERE TABLE_NAME = 'history'
答案 1 :(得分:1)
Necromancing。
看起来你和我一样有一个好的架构......
以下是如何正确执行此操作:
在此示例中,表名为dbo.T_SYS_Language_Forms,列名为LANG_UID
.ui-front{z-index:0 !important; }
.ui-selectmenu-open {z-index:9999 !important;}