SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值

   我们知道SQL SERVER建立链接服务器(Linked
Server)可以选择的驱动程序非常多,最近发现使用ODBC 的 Microsoft OLE DB 驱动程序建立的链接服务器(Linked
Server), 调用存储过程过程时,参数不能为NULL值。

否则就会报下面错误提示:

对应的英文错误提示为:

EXEC xxx.xxx.dbo.Usp_Test NULL,NULL,'ALL'

Msg 7213, Level 16, State 1, Line 1

The
attempt by the provider to pass remote stored procedure parameters to
remote server 'xxx'  failed. Verify that the number of parameters, the
order, and the values passed are correct.

对应的中文错误提示为:

EXEC xxx.xxx.dbo.Usp_Test NULL,NULL,'ALL'

Msg 7213, Level 16, State 1, Line 1

提供程序将远程存储过程参数传递给远程服务器 'xxx' 的尝试失败。请确保参数的数目、顺序和所传递的值正确。

 

EXEC
xxx.xxx.dbo.Usp_Test '','','ALL' 或者给参数赋予一个合适的值则不会报任何错误。另外使用Microsoft
OLE DB Provider for SQL Server驱动方式建立的链接服务器(Linked
Server)调用存储过程时参数就可以为NULL。 

时间: 2024-11-01 19:32:00

SQL SERVER使用ODBC 驱动建立的链接服务器调用存储过程时参数不能为NULL值的相关文章

sql server的作业调度来建立自动备份的方法

server|备份     1.进入企业管理器中->管理->sql server代理->作业: 2.新建作业,作业名称随便取,例如:data备份,所有者选择sa,当然你也可以选择其他用户,前提是该用户有执行作业的权限: 3.点击步骤标签,进入步骤面板.新建步骤,步骤名可以随便填写,如步骤1,类型和数据库默认,不需要修改.命令中写入以下语句: BACKUP DATABASE [数据库名] TO  DISK = N'F:\data\数据库备份'  WITH  NOINIT ,  NOUNLO

如何在SQL Server中由原子建立分子查询

每位SQL Server开发员都有自己的首选操作方法.我的方法叫做分子查询.这些是由原子查询组合起来的查询,通过它们我可以处理一个表格.将原子组合起来,可以建立分子.当然也会有限制(化学家所称的化合价),但一般来说,这个原理还是适用的. 在本文中,我将探讨这种策略的几种变化.我从最基本的内容开始(即最详细的内容),然后逐步深化.为让你了解这种方法的灵活性,我会在不同层次使用几种技巧.(警告:这并不是唯一的解决方法,我只是在讨论一些可行的选择.) 我从普遍使用的数据库Northwind开始(虽然为

SQL Server创建链接服务器的存储过程示例分享

创建链接服务器.链接服务器让用户可以对 OLE DB 数据源进行分布式异类查询.在使用 sp_addlinkedserver 创建链接 服务器后,可对该服务器运行分布式查询.如果链接服务器定义为 SQL Server 实例,则可执行远程存储过程. http://msdn.microsoft.com/zh-cn/library/ms190479(SQL.90).aspx EXECUTE sp_addlinkedserver @server='DB1', @srvproduct='',@provid

SQL Server Compact Edition 程序建立步骤

在创建应用程序之前,必须在 SQL Server 2005 中配置发布.在下列步骤中,您将创建一个示例数据库,然后从该数据库发布数据.您将使用预建的脚本文件创建数据库,然后使用新建发布向导来创建发布. 创建数据库并在其中填充数据 准备服务器以发布数据 在创建发布之前,必须创建快照代理用户帐户,并创建一个将在其中存储快照文件的共享文件夹,准备服务器以进行发布.创建快照文件夹之后,该文件夹将用于服务器上的所有发布.如果以前已在此服务器上创建了发布,您可以跳过这些步骤. 创建快照用户帐户 创建快照文件

当SQL Server排序时遇上了NULL值

这是一个经常被问到的问题.尤其是客户之前使用的是Oracle,那么他在使用SQL Server的时候会有 一个疑问,就是在处理NULL值上面,SQL Server与Oracle的行为不一样 在Oracle中,NULL值会认为是一个无穷大的值,所以如果按照升序排列的话,则会被排在最后面 在SQL Server中则正好相反,NULL值会被认为是一个无穷小的值,所以如果按照升序排列的话,则会 被排在最前面 如 SELECT [ID] FROM [demo].[dbo].[Orders] Order B

基于Win2008 R2的WSFC实现 SQL Server 2012高可用性组(AlwaysOn Group)_win服务器

两年前的<SQL Server 2008 R2数据库镜像部署>,今天"再续前缘"-- 微软新一代数据库产品SQL Server 2012已经面世一段时间了,不管从功能上讲还是性能上的体现,较之其早期产品都有了很大提升.特别是其引入高可用性组(AlwaysOn Group, AG)这一概念和功能,大大增强和提高了SQL Server的可用性,在之前的镜像数据库的基础上有了质的变化.  SQL Server 2012高可用性组在实现过程中较之早起的SQL Server故障转移群

SQL Server使用Merge语句当源表数据集为空时,无法进行查询的问题_MsSql

面举一个例子来具体说明一下: 有两个表SourceTable为登陆表,TargetTable为授权表,如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客.sql语句如下: --SourceTable为登陆表,TargetTable为授权表 --如果访问用户在登陆表中,更新授权表的授权级别,否则授权0表示游客. create table SourceTable(UserName nvarchar(10),Pwd int,[Level] int) create table Target

SQL server 2005中如何建立HTTP的端点

SQL2005提供了一个新的执行存储过程或者T-SQL的方法,它可以以WEB服务的方式发布到服务器上,而无须使用IIS 这个新特点通过HTTP API把HTTP端点暴露给用户,在WINXP SP2和WIN2003上被支持 建立一个HTTP端点是非常简单的,如下: CREATE ENDPOINT MyEndpoint?STATE = STARTEDAS HTTP ( AUTHENTICATION = (INTEGRATED), PATH = '/sql/myendpoint', PORTS = (

MyEclipse 配置SQL Server 2008数据库驱动操作步骤_mssql2008

1.在环境变量中,在classpath下添加sqljdbc.jar的路径(可直接复制sqljdbc.jar到jdk目录下) 2.设置SQLEXPRESS服务器,启动TCP/IP服务(若已开启跳过此步),重启服务器 3.在MyEclipse中,Window --> Preferences --> Java --> Installed JRES 点击Edit,进入之后添加现有jar,选择之前的sqljdbc.jar 4.配置完成,在新建一个web工程的时候会自动添加此数据库连接 5.选择一个