テーブルにデータが追加されたときにテーブルを作成するトリガーが必要です。テーブル名は、挿入されたエントリの名前でなければなりません。
例: 患者が病院に登録すると、paitientDetail
テーブルに行が挿入されます。トリガーは、患者の名前を持つテーブルを作成する必要があります。
テーブルにデータが追加されたときにテーブルを作成するトリガーが必要です。テーブル名は、挿入されたエントリの名前でなければなりません。
例: 患者が病院に登録すると、paitientDetail
テーブルに行が挿入されます。トリガーは、患者の名前を持つテーブルを作成する必要があります。
この質問に答える前に、これはひどい考えだと前置きしなければなりません。 患者ごとに新しいテーブルを作成しないでください。 これにより、今後多くの問題が発生します。
たとえば、100 人の患者がいる場合、100 個のテーブルが必要になります。それでは、すべての患者のデータを返す必要がある場合はどうすればよいでしょうか。
SQL Server でこのタイプのプロセスを実行する必要がある場合は、次の方法で実行できます。
サンプルテーブル:
CREATE TABLE [dbo].[Test](
[id] [int] NOT NULL,
[name] [varchar](50) NOT NULL
) ON [PRIMARY]
Your Trigger
動的 SQL を使用して、挿入されたデータから名前を取得します。
CREATE TRIGGER dbo.testTrg
ON dbo.test
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
declare @newtable varchar(50)
set @newtable = (select quotename(name) from inserted)
declare @sql varchar(max)
set @sql = 'create table ' + @newtable + '
(
[id] [int] NOT NULL,
[newColumn1] [varchar](50) NOT NULL
) ON [PRIMARY]'
exec(@sql)
END
このトリガーは、テーブルを作成します。
CREATE TABLE [dbo].[test1](
[id] [int] NOT NULL,
[newColumn1] [varchar](50) NOT NULL
) ON [PRIMARY]
患者にとってはるかに優れた設計は次のとおりです。1 つの患者テーブルを用意してから、必要に応じて追加のテーブルを作成して、患者の追加の詳細を含めます。
Patient Table:
id int, -- PK
name varchar(50)
Doctor Table
id int, -- PK
name varchar(50)
Patient_Doctor table
p_id int, -- PK -- FK to Patient Table
d_id int -- PK -- FK to Doctor Table