使用SSMS 2008客户端工具逆向生成了创建链接服务器的脚本时,在测试环境执行是报如下错误:'(null)' is an invalid product name.

USE [master]

GO

IF EXISTS (SELECT srv.NAME 

           FROM   sys.servers srv 

           WHERE  srv.server_id != 0 

                  AND srv.NAME = N'MES_DB_LINK_TEST') 

  EXEC master.dbo.Sp_dropserver 

    @server=N'MES_DB_LINK_TEST', 

    @droplogins='droplogins' 

 

go 

 

EXEC master.dbo.Sp_addlinkedserver 

  @server = N'MES_DB_LINK_TEST', 

  @provider=N'SQLNCLI', 

  @datasrc=N'192.168.xxx.xxx', 

  @catalog=N'TEST' 

 

EXEC master.dbo.Sp_addlinkedsrvlogin 

  @rmtsrvname=N'MES_DB_LINK_TEST', 

  @useself=N'False', 

  @locallogin=NULL, 

  @rmtuser=N'tuser', 

  @rmtpassword='123456' 

 

go 

消息 15429,级别 16,状态 1,过程 sp_addlinkedserver,第 45 行

'(null)' is an invalid product name.

出现如上错误,是因为这个是SQL Server Management Studio 的一个bug来的。它逆向生成脚本时,生成的脚本少了一些参数,所以你执行脚本时就会报上述错误。这个bug已经在SQL Server Management Studio 2012解决了,你用SSMS 2012逆向生成脚本就会发现会多一个参数@srvproduct

USE [master] 

 

go 

 

IF EXISTS (SELECT srv.NAME 

           FROM   sys.servers srv 

           WHERE  srv.server_id != 0 

                  AND srv.NAME = N'MES_DB_LINK_TEST') 

  EXEC master.dbo.Sp_dropserver 

    @server=N'MES_DB_LINK_TEST', 

    @droplogins='droplogins' 

 

go 

 

EXEC master.dbo.Sp_addlinkedserver 

  @server = N'MES_DB_LINK_TEST', 

  @srvproduct=N'', 

  @provider=N'SQLNCLI', 

  @datasrc=N'192.168.xxx.xxx', 

  @catalog=N'TEST' 

 

EXEC master.dbo.Sp_addlinkedsrvlogin 

  @rmtsrvname=N'MES_DB_LINK_TEST', 

  @useself=N'False', 

  @locallogin=NULL, 

  @rmtuser=N'tuser', 

  @rmtpassword='123456' 

 

go 

 

参考资料:

https://connect.microsoft.com/SQLServer/feedback/details/712415/create-script-generated-for-linked-server-via-ssms-is-not-usable

sp_addlinkedserver '(null)' is an invalid product name的更多相关文章

  1. mysql 修改列为not null报错Invalid use of NULL value

    场景:mysql 给表新增parent_id列,并设置为not null,保存时报错Invalid use of NULL value. 报错原因:因为已存在的数据的parent_id列为null,与 ...

  2. SQL Sever 博客文章目录(2016-07-06更新)

    SQL Server方面的博客文章也陆陆续续的写了不少了,顺便也将这些知识点整理.归纳一下下.方便自己和他人查看. MS SQL 数据类型 三大数据库对比研究系列--数据类型 MS SQL 表和视图 ...

  3. In-App Purchase Programming Guide----(三) ----Retrieving Product Information

    Retrieving Product Information In the first part of the purchase process, your app retrieves informa ...

  4. 03.product.js

    /* item.jd.com Compressed by uglify Author:keelii Date: 2014-08-05 6:52:26 [PM] */ function insertSc ...

  5. invalid conversion from 'void* (*)()' to 'void* (*)(void*)'

    void *thread1() ], NULL, thread1, NULL)) != ) 提示:invalid conversion from 'void* (*)()' to 'void* (*) ...

  6. 集合学习之"将集合对象List<Product>转换为Map"

    将集合对象List<Product>转换为Map key = Product对象的sku value =Product对象 1 List<Product> products = ...

  7. A Simple MVVM Example[Forward]

    In my opinion, if you are using WPF or Silverlight you should be using the MVVM design pattern. It i ...

  8. Get started with Google Analytics

    What is Google Analytics Google Analytics is a Google official analytics tool that is primarily used ...

  9. Asp.Net Core微服务再体验

    ASP.Net Core的基本配置 .在VS中调试的时候有很多修改Web应用运行端口的方法.但是在开发.调试微服务应用的时候可能需要同时在不同端口上开启多个服务器的实例,因此下面主要看看如何通过命令行 ...

随机推荐

  1. 如何用 js 获取table 或者其他块状标签的 宽和高

    这个比较简单,总体思想,标签标记一个id,js获取id,就能用它的属性了.介绍两种方法.请看下面代码. 第一种 <script> function width_table_all() { ...

  2. iOS - 类扩展与分类的区别

    类扩展 (Class Extension也有人称为匿名分类) 作用: 能为某个类附加额外的属性,成员变量,方法声明 一般的类扩展写到.m文件中 一般的私有属性写到类扩展 使用格式: @interfac ...

  3. java多线程--信号量Semaphore的使用

    Semaphore可以控制某个共享资源可被同时访问的次数,即可以维护当前访问某一共享资源的线程个数,并提供了同步机制.例如控制某一个文件允许的并发访问的数量. 例如网吧里有100台机器,那么最多只能提 ...

  4. C++入门知识总结(1)

    1.有符号数和无符号数. 这个问题其实是一个很细的问题,我们还要把问题追溯到“位”,针对不同的“位”,那么能表示的最大数的范围不同.因为计算机存储数据都是以二进制的方式去存储的,即0和1,比如 110 ...

  5. php学习零散笔记—字符串分割、fetch函数和单双引号。

    1 字符串分割——split()函数和preg_split()函数 split — 用正则表达式将字符串分割到数组中——貌似PHP5.3以上已不赞成使用 array split ( string $p ...

  6. Cocos2dx实现光影效果的两种方式

    Shader 和 RenderTexture 先贴上两张效果图 (Shader) (RenderTexture) 说一下实现的原因,因为项目中需要夜景,光影的效果.最初想到使用Shader来实现.实现 ...

  7. ORACLE存储过程调用Web Service

    1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...

  8. sql 2012中获取表的信息,包含字段的描述

    1.获取数据库中的表 select name from sysobjects where type='U' 2.获取表字段(此处是Route表) Select name from syscolumns ...

  9. WPF CheckBox 自定义样式

    WPF 自定义样式.CheckBox <Style x:Key="EmptyCheckBox" TargetType="CheckBox"> < ...

  10. C++_系列自学课程_第_4_课_string_《C++ Primer 第四版》

    相信学习过计算机编程的人,基本应该都接触过C语言,在C语言中处理字符串大家一定多遇到过, 也都知道处理字符串非常麻烦,而在C++里面,由标准库string类提供对可变长的字符串的支持.下面 来看看st ...