Sql Server2008中自定义函数调用存储过程解决方案
1.开启sql server 2008远程连接
打开sql server配置管理器
配置SSCM,选中左侧的“SQL Server服务”,确保右侧的“SQL Server”以及“SQL Server Browser”正在运行
11
在左则选择sql server网络配置节点下的sqlexpress的协议,在右侧的TCP/IP默认是“否”,右键启用或者双击打开设置面板将其修改为“是”
选择“IP 地址”选项卡,设置TCP的端口为“1433”
将"客户端协议"的"TCP/IP"也修改为“Enabled”
在控制面板下的 系统和安全 下的 Windows防火墙,高级设置
入站规则和出站规则,选择新建规则,开放1433端口
2.Win7下Telnet服务默认是关闭的
在控制面板(小图标)下,程序与功能 下的 打开或关闭Windows功能
找到“Telnet服务器”和“Telne客户端”两项,然后将之前的勾选上即可开启对应服务
在cmd终端窗口下输入,telnet 192.168.1.49(ip地址) 1433 ,测试端口是否开放。
3.自定义函数调用存储过程
--创建student表 create table student( id int , name varchar(30), age int )
insert into student values(1,'张三',22); insert into student values(2,'李四',22); insert into student values(3,'王五',22); |
create proc wx$opencard(@p_appid varchar(20),@p_param varchar(20)) as select * from student where id = @p_appid and age = @p_param; go
--通过openrowset在函数中调用存储过程 create function test() returns table as return SELECT * FROM OPENROWSET( 'SQLOLEDB.1', 'server=SERVER-PC\SQLEXPRESS;uid=root;pwd=root', 'exec wx$opencard 1,22' ) go |
开启openrowset方法
sp_configure 'show advanced option',1;
GO
RECONFIGURE
sp_configure 'Ad Hoc Distributed Queries',1;
GO
RECONFIGURE