创建在SQL Server 2008中调用存储过程的表

时间:2012-09-03 19:41:19

标签: sql-server sql-server-2008 proxy migration sybase

我将SP从Sybase迁移到SQL Server,我有一个案例,他们使用"代理表"用于在查询中使用SP时内部调用SP ...

用于创建代理表的语法如下:

USE myDatabase
go
sp_addobjectdef proxy_table_name, 'loopback.myDatabase..sp_name', 'rpc'
go
CREATE EXISTING TABLE proxy_table_name
(
    col1       int NOT NULL,
    col2       char(2) NOT NULL,
    col3       varchar(20) NOT NULL,
    _id_sp     int NULL
)
LOCK ALLPAGES
go

SP的定义是这样的:

CREATE procedure sp_search_intermediary_agent
(
      @param_default_1      char(1)  = 'N',  
      @param_default_2      bit      = 0, 
      @i_id_query           int 
)
as
begin
........ (some code here)


  select col1, col2, col3 from table_where_data_is 
  where  id_table = @i_id_query
  return 0
end
go

代理表在查询中使用,就好像它是一个普通的表...

select col1, col2, col3,....
from  table_1, proxy_table_name
where table_1.id_field = proxy_table_name._id_sp

请关于如何迁移此代码表的任何想法"代理表"到SQL Server 2008 ??

1 个答案:

答案 0 :(得分:0)

看起来像table valued function