1

DB1 に FILLTABLE プロシージャー呼び出しがあり、そのプロシージャーは DB1.table1 の挿入を制御し、DB2.table1 にすべてのデータがあるため、基本的には BD2.table1 からのプロシージャー FILLTABLE によって DB1.table1 を埋める必要がありますが、データ DB2.table1 をフィルタリングします。

例えば:

Execute BD1.dbo.FILLTABLE (
                select db2.dbo.table1.name as @name, 
                       db2.dbo.table1.phonea s @phone 
                from table1 
                where citycode = 'ca')
4

2 に答える 2

0

構文は次のようになります。

INSERT DB1.dbo.Table1
(Column1, Column2)
SELECT name, phonea
FROM db2.dbo.table1 
WHERE citycode = 'ca'

これはすべて のドキュメントに記載されていますINSERT

于 2012-12-28T09:43:28.810 に答える
0

正しければ、カーソルを使用する必要があります

DECLARE @Name varchar(1000); -- change to type of db2.dbo.table1.name
DECLARE @Phone varchar(1000); -- change to type of db2.dbo.table1.phone

DECLARE t_Cursor CURSOR FOR
select db2.dbo.table1.name, 
       db2.dbo.table1.phone
    from table1 
    where citycode = 'ca';

OPEN t_Cursor;
FETCH NEXT FROM t_Cursor INTO @Name,@Phone;
WHILE @@FETCH_STATUS = 0
   BEGIN
      Execute BD1.dbo.FILLTABLE @Name,@Phone;
      FETCH NEXT FROM t_Cursor INTO @Name,@Phone;

   END;
CLOSE t_Cursor;
DEALLOCATE t_Cursor;
于 2012-12-28T09:56:53.157 に答える