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 回答