私はSQL Server 2014を使用しています。私はthis questionのJoel Coehoornによる解決策を探しましたが、うまくいきませんでした。SQL - 2つのリンクと1つのテーブルを分割
私はAac_Client
に名前を変更し、クライアント情報とアドレス情報の両方を列として持つクライアントのテーブルを持っています。私は住所を新しいテーブルAddress
に移して物事を整理し、残りのものはAc_Client
に保ちたいと思います。私は次をしようとしています:
メモアドレスとクライアントの関係は1対1です。
BEGIN TRANSACTION
DECLARE @DataID int;
-- Insert Address
INSERT INTO Address ([StreetNumber],[StreetName] ,[StreetAddress2] ,[Unit] ,[City] ,[State] ,[Zip] ,[County])
SELECT [StreetNumber], [StreetName], [StreetAddress2], [Unit] ,[City] ,[State] ,[Zip] ,
NULL AS [County]
FROM Aac_Client
-- Get Address Id
SELECT @DataID = scope_identity();
-- Insert Client
INSERT INTO Ac_Client (AddressId, Name, Phone, Contact)
SELECT @DataID AS AddressId, Name , Phone, Contact FROM Aac_Client
COMMIT
しかし、問題は、一度にINSERT実行されていると私は、一時テーブルに最初のINSERT文の出力句を使用SELECT @DataID = scope_identity();
あなた 'Address' insert文は明らかに物事がはるかに簡単になりましたでしょう' Address'テーブルの 'ClientID'列が存在すると仮定しますが、これはそうではありませんので、お答えOPを助けないだろう。 –
ええ、私は1つがなければならないことを知っている、またはこれは彼のクライアントテーブルには関係がありません。まあ、現在のクライアントテーブルに存在しない可能性があるため、AddressIdが新しいアドレステーブルのIDENTITYカラムであると仮定していると思います。 – Matt
私はそれがクライアントテーブルにリンクする 'AddressID'カラムだと思いますクライアントテーブルにはAddressID列があります。 –