Я могу получить код хранимой процедуры, используя таблицу syscomments.SQL Server Как я могу получить код ограничения внешнего ключа
select so.name, sc.text as storedproccode
from sysobjects so (nolock)
inner join syscomments sc (nolock) on sc.id = so.id
where so.name = 'tablename'
Как получить код для ограничения внешнего ключа? У меня есть имя внешнего ключа.
Позвольте мне уточнить, что я ищу.
Я нахожу свою таблицу в Обозревателе объектов и разворачиваю список ключей. Если есть первичный ключ, я могу щелкнуть правой кнопкой мыши по ограничению первичного ключа и открыть сценарий в новом окне.
код выглядит следующим образом:
USE [Gemini]
GO
/****** Object: Index [PK_CM_FULFILLMENT_HISTORY] Script Date: 02/17/2012 16:50:23 ******/
ALTER TABLE [dbo].[CM_FULFILLMENT_HISTORY] ADD CONSTRAINT [PK_CM_FULFILLMENT_HISTORY] PRIMARY KEY NONCLUSTERED
(
[pan] ASC,
[RequestCode] ASC,
[RequestDate] ASC
)WITH (SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON [GEMINI_12_Indx_FG]
Я также могу сделать это с помощью внешних ключей.
Есть ли способ извлечь код (скрипт) из этих ограничений?
Благодаря
Я не думаю, что он хранится в виде строки, значения хранятся в системных таблицах. В ограничениях гораздо меньше гибкости, поэтому их можно нормализовать. – JNK
Пожалуйста, ознакомьтесь с этим вопросом - мой ответ посвящен изучению нескольких различных зависимостей, включая внешние ключи. Как отмечали другие, SQL Server не хранит сценарий «ALTER TABLE» где угодно. http://stackoverflow.com/questions/6557038/find-tables-that-a-particular-table-depends-on-in-sql-server –