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. ドロップ複合主キー制約
- 4. Grailsのデフォルトの制約
- 5. 再作成デフォルトの制約 - 新しい制約が
- 6. カラムにデフォルト制約を追加する
- 7. ドロップして再作成制約
- 8. すべてのテーブル制約をコピーするT-SQLスクリプト
- 9. テーブルに制約を表示
- 10. 一時テーブルのTSQL制約
- 11. テーブルの制約を確認する
- 12. hibernateバリデーターのすべてのプロパティーにデフォルトの制約を設定するには
- 13. 3つのテーブル間でタグを制約する方法
- 14. 子テーブルを制約する親テーブルに制約をどのように作成しますか?
- 15. NSSplitViewを制約する方法は?
- 16. mysqlでテーブル制約を作成する
- 17. UIbuttonsの制約を与える方法
- 18. フィールド上の制約を作る方法
- 19. 制約
- 20. 制約
- 21. 制約
- 22. 制約
- 23. 制約
- 24. intカラムスローに対するGrails制約制約java.lang.IllegalArgumentException
- 25. パラメータの制約
- 26. Oracleの制約
- 27. 制約のチェック
- 28. ジェネリックインターフェイスの制約
- 29. 制約の種類を知らなくても、制約のターゲットリストを照会する方法は?
- 30. MySQLテーブルの一意制約を破棄
私は100%確実ではないと私はテストすることができませんので、私は私の答えを削除しました。 – Peter
あなた自身の解決策は大丈夫ですよね? – Peter