新しいテーブルを作成するときSQL Server 2008
に putの構成設定はありますか?Primary key must
Oracle が主キーなしでテーブルを作成することを許可していないことは知っていますが、SQL Server 2008 にはそのような制限はありません。
そうする方法を知っていますか (ほとんどの場合、作成するのを忘れており、SQL Azure でエラーが発生します)。
新しいテーブルを作成するときSQL Server 2008
に putの構成設定はありますか?Primary key must
Oracle が主キーなしでテーブルを作成することを許可していないことは知っていますが、SQL Server 2008 にはそのような制限はありません。
そうする方法を知っていますか (ほとんどの場合、作成するのを忘れており、SQL Azure でエラーが発生します)。
これには DDL Triggers を使用できますが、Sql を解析して PK が作成されているかどうかを確認する必要があります。他に選択肢はないと思います。
例:
create trigger trgTable
on database
for create_table, alter_table
as
set nocount on
declare @data xml, @obj varchar(255), @type varchar(255), @cmd varchar(max)
set @data = EVENTDATA()
select
@obj = @data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'varchar(256)'),
@type = @data.value('(/EVENT_INSTANCE/ObjectType)[1]', 'varchar(25)'),
@cmd = @data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'varchar(max)')
-- now do your logic here