SQL 2005の特定のテーブルに属するすべてのデフォルト制約を削除するにはどうすればよいですか?デフォルトの制約の制約をすべてテーブルにドロップする方法
答えて
一つの解決策from a search:(既定の制約のために編集)
SET NOCOUNT ON
DECLARE @constraintname SYSNAME, @objectid int,
@sqlcmd VARCHAR(1024)
DECLARE CONSTRAINTSCURSOR CURSOR FOR
SELECT NAME, object_id
FROM SYS.OBJECTS
WHERE TYPE = 'D' AND @objectid = OBJECT_ID('Mytable')
OPEN CONSTRAINTSCURSOR
FETCH NEXT FROM CONSTRAINTSCURSOR
INTO @constraintname, @objectid
WHILE (@@FETCH_STATUS = 0)
BEGIN
SELECT @sqlcmd = 'ALTER TABLE ' + OBJECT_NAME(@objectid) + ' DROP CONSTRAINT ' + @constraintname
EXEC(@sqlcmd)
FETCH NEXT FROM CONSTRAINTSCURSOR
INTO @constraintname, @objectid
END
CLOSE CONSTRAINTSCURSOR
DEALLOCATE CONSTRAINTSCURSOR
OBJECT_NAMEからPARENT_OBJECT_NAMEに変更するとうまくいった。 –
良いクエリです。私はしかし、修正を行います。 SELECT NAME、parent_object_id FROM SYS.OBJECTS WHERE TYPE = 'D' AND parent_object_id = 'Mytable') –
ただ、なぜあなたはこれをしたいですか?制約を破棄するのはかなり劇的なアクションであり、プロセスだけでなくすべてのユーザーに影響します。多分あなたの問題は他の方法で解決することができます。あなたがシステムのdbaでないなら、あなたはこれを行うべきかどうかについて非常に懸命に考えるべきです。 (もちろん、ほとんどのシステムでは、dbaは他の誰にもそのようなことを許可することはできません。)
私はUnicodeをサポートする必要があるいくつかのフィールドを使用しています。これを行う。したがって、私は列のデータ型を変更しており、処理中に制約を破棄して再度作成しています....... –
私はこれは古いですが、私はグーグルでそれを見つけました。 カーソルに頼ることなくSQL 2008(2005わからない)に私の作品解決策は以下の通りです:
declare @sql nvarchar(max)
set @sql = ''
select @sql = @sql + 'alter table YourTable drop constraint ' + name + ';'
from sys.default_constraints
where parent_object_id = object_id('YourTable')
AND type = 'D'
exec sp_executesql @sql
これは最初に見つかった制約(少なくともそれが私にしたことです)だけを削除します。あなたはそれらのすべてを反復する必要があります。 –
@ Ioana Marcu:SQL 2008データベースで私の仕事。私は 'Account'というテーブルのために以下のような文字列を取得するalter tableアカウントのドロップ制約DF__Account__Account__4865BE2A; alter tableアカウントのドロップ制約DF__Account__Account__4959E263つまり連結されたドロップステートメントの束 – PabloInNZ
- 1. RadDockのドラッグ&ドロップの制約
- 2. SQLドロップ既定の制約
- 3. Postgresドロップ制約の順
- 4. Oracle_CXアルター表ドロップ制約
- 5. ドロップ複合主キー制約
- 6. 制約、別のテーブル
- 7. Grailsのデフォルトの制約
- 8. IDのデフォルトの制約
- 9. カラムにデフォルト制約を追加する
- 10. 再作成デフォルトの制約 - 新しい制約が
- 11. ドロップして再作成制約
- 12. 制約レイアウトの子ビューの制約をプログラム的に変更する方法
- 13. Oracleのデフォルト制約の名前を変更する方法は?
- 14. バーチカルのデフォルトの制約を克服する方法
- 15. すべてのテーブル制約をコピーするT-SQLスクリプト
- 16. 制約getTargets方法
- 17. テーブルに制約を表示
- 18. SQL Server:ドロップ制約がある場合
- 19. 倍数テーブルの値にSQL制約を追加する方法
- 20. hibernateバリデーターのすべてのプロパティーにデフォルトの制約を設定するには
- 21. テーブルの制約を確認する
- 22. 参照テーブルのSQL制約
- 23. 一時テーブルのTSQL制約
- 24. Entity Frameworkのテーブル制約
- 25. 一時テーブルの制約
- 26. 3つのテーブル間でタグを制約する方法
- 27. 子テーブルを制約する親テーブルに制約をどのように作成しますか?
- 28. NSSplitViewを制約する方法は?
- 29. AutoLayout制約をデバッグする方法は?
- 30. テンプレートパラメータを制約する方法
私は100%確実ではないと私はテストすることができませんので、私は私の答えを削除しました。 – Peter
あなた自身の解決策は大丈夫ですよね? – Peter