SQL 2000/2005/2008 - Намерете уникално име на ограничение за колона

Имам таблица с колона, която се нуждае от надграждане на типа данни. Изпълнението на скрипт за промяна обаче причинява грешки поради неназовано уникално ограничение.

Трябва да премахна това ограничение, но за съжаление не знам името. Имам скрипт, който в момента изброява всички уникални ограничения на таблицата, но трябва да открия как да отида още една стъпка напред и да свържа имената на ограниченията с колоните.

Select *
From sysobjects
Where sysobjects.xtype = 'UQ' AND sysobjects.parent_obj= OBJECT_ID(N'Users')

това се връща

UQ__Users__45F365D3
UQ__Users__46E78AOC

Трябва да знам към кои колони са свързани тезиси, за да изтрия правилната. Трябва да поддържам SQL 2000, 2005 и 2008.

Всякакви предложения ще бъдат оценени.

Благодаря Бен


person Ben Cawley    schedule 28.09.2010    source източник
comment
Ако публикувате код или XML, моля маркирайте тези редове в текстовия редактор и щракнете върху бутона за код (101 010) в лентата с инструменти на редактора, за да го форматирате и синтаксисът го подчертае добре!   -  person marc_s    schedule 28.09.2010


Отговори (1)


Трябва да можете да използвате INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE, за да установите това.

SELECT 
   CONSTRAINT_NAME 
FROM 
   INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE 
WHERE 
   TABLE_NAME = 'TableName' 
   AND COLUMN_NAME = 'ColumnName'

Все пак не съм сигурен дали изгледът се поддържа напълно в SQL 2000.

person JamWheel    schedule 28.09.2010
comment
Благодаря на JamWheel. Това изглежда работи добре и както се очаква на SQL 2000, 2005 и 2008! - person Ben Cawley; 28.09.2010
comment
Ако публикувате код или XML, моля маркирайте тези редове в текстовия редактор и щракнете върху бутона за код (101 010) в лентата с инструменти на редактора, за да го форматирате и синтаксисът го подчертае добре! - person marc_s; 28.09.2010
comment
Това не ми помогна да намеря ограничение по подразбиране; той само локализира FK ограничението. stackoverflow.com/a/6883039/109736 работи за мен. - person JasonCoder; 20.05.2013