的代碼,我可以使用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 2012-02-17 21:48:27
請看這個問題 - 我的答案涉及瞭解幾種不同的依賴關係,包括外鍵。正如其他人所述,SQL Server不會在任何地方存儲'ALTER TABLE'腳本。 http://stackoverflow.com/questions/6557038/find-tables-that-a-particular-table-depends-on-in-sql-server – 2012-02-17 22:03:17