首先要把数据库的TRUSTWORTHY属性改为ON

ALTER DATABASE [MYDB] SET TRUSTWORTHY ON
GO

接下来直接创建ASSEMBLY应该就没问题了。但是往往有可能遇到一种情况 -- 在运行CREATE ASSEMBLY的时候发生错误

Msg 33009, Level 16, State 2, Line 5
The database owner SID recorded in the master database differs from the database owner SID recorded in database 'MYDB'. You should correct this situation by resetting the owner of database 'MYDB' using the ALTER AUTHORIZATION statement.

这句话其实就是告诉你目标数据库Owner的SIS和master数据库中记录的SID不一样。很可能的原因就是,因为我们需要把数据库还原到某一台测试机子上,然后因为login在不同的环境下SID不同(虽然名字相同)。解决办法就是把SID改成和master数据库中记录的SID一致

DECLARE @Command VARCHAR(MAX) = 'ALTER AUTHORIZATION ON DATABASE::<<DatabaseName>> TO [<<LoginName>>]' 

SELECT @Command = REPLACE(REPLACE(@Command
, '<<DatabaseName>>', DB_NAME())
, '<<LoginName>>', sp.name)
FROM sys.databases db JOIN
sys.server_principals sp ON sp.sid = db.owner_sid
WHERE db.name = 'master' --PRINT @Command
EXEC(@Command)
GO

然后就可以创建ASSEMBLY啦。

以之前博文中有一篇讲到的遍历整个文件目录的ASSEMBLY为例

USE [MYDB]
GO CREATE ASSEMBLY [MYDB_CLR_Lib]
AUTHORIZATION [dbo]
FROM 'C:\XXXXXX.dll'
WITH PERMISSION_SET = EXTERNAL_ACCESS GO

再创建存储过程

USE [MYDB]
GO CREATE PROCEDURE [dbo].[usps_GetFileListByExtensionAndPattern]
@SourceFolder [nvarchar](2000),
@FileExtension [nvarchar](10),
@FileNamePattern [nvarchar](2000),
@IsSubfolderScanned [smallint]
WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [MYDB_CLR_Lib].[StoredProcedures.EnumerateSourceFileDirectory].[GetFileListByExtensionAndPattern]
GO

还没完,还要把clr enabled服务器配置选项配成1

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO

SQL Server ->> 在SQL Server中创建ASSEMBLY的更多相关文章

  1. SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二: ...

  2. 关于SQL Server 镜像数据库快照的创建及使用

    从SQL Server 2005 SP 起,SQL 开始支持数据库镜像.它的设计目的是试图为SQL Server 提供一个具有实时性数据同步的灾难恢复技术,即能够提供数据冗余备份,切换起来比较方便.每 ...

  3. Linux服务器中创建Oracle数据库实例

    紧接上篇,在Linux服务器已经完成对Oracle数据库软件的安装后,接下来要创建Oracle实例,看图说话: [su – oracle echo $DISPLAY export DISPLAY=10 ...

  4. mysql中创建函数时报错信息

    报错信息如下 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its ...

  5. 在64位SQL Server中创建Oracle的链接服务器

    当我们同时使用SQL Server和Oracle来存储数据时,经常会用到跨库查询.为了方便使用跨库查询,一个最好的办法就是通过创建链接服务器来实现.既可以在SQL Server中创建Oracle的链接 ...

  6. ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接

    原文:ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 安装ArcSDE for SQL Server,最后一步成功后的界面如下: 在ArcMap中创建ArcSDE ...

  7. 转 在SQL Server中创建用户角色及授权(使用SQL语句)

     目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个 ...

  8. sql server中创建链接服务器图解教程

    转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...

  9. SQL Server 扩展事件(Extented Events)从入门到进阶(2)——在GUI中创建基础扩展事件

    本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 第一篇文章中提到了如何在Profiler中创建跟踪(trace),并以服务器端(server-side)跟 ...

随机推荐

  1. [转] python提取计算结果的最大最小值及其坐标

    python提取计算结果的最大最小值及其坐标 我们在fluent当中后处理的时候,可以通过fluent本身得到某些物理量的最大值和最小值,但是我们却无法确定这些最大值和最小值的具体位置.其实我们可以将 ...

  2. LeetCode8. 字符串转整数 (atoi)

    8. 字符串转整数 (atoi) 描述 实现 atoi,将字符串转为整数. 在找到第一个非空字符之前,需要移除掉字符串中的空格字符.如果第一个非空字符是正号或负号,选取该符号,并将其与后面尽可能多的连 ...

  3. SQL Server2012如何更改服务器的名称

    Problem: sql server 2012 安装完毕后,连接数据库只能使用 机器名\数据库实例 的方式,想用 localhost 或 . 作为服务器名称不可以 Solution: 参考:http ...

  4. 设置select不可修改

    <s:select id="notSelectChange" list="#{'1':'表示每月几号','2':'表示每季度第几天','3':'表示每年第几月'}& ...

  5. 在linux服务器上配置anaconda和Tensorflow,并运行

    1. 查看服务器上的Python安装路径: whereis python 2. 查看安装的Python版本号: python 3. 安装Anaconda: 1)下载 Anaconda2-4.0.0-L ...

  6. 大素数判断和素因子分解(miller-rabin,Pollard_rho算法) 玄学快

    大数因数分解Pollard_rho 算法 复杂度o^(1/4) #include <iostream> #include <cstdio> #include <algor ...

  7. HDU - 6186 前缀和位运算

    异或操作蒙蔽了我的双眼 以至于没有第一时间想到前缀和与后缀和 水题做的不够多 #include<bits/stdc++.h> #define rep(i,j,k) for(register ...

  8. [转] JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件

    [From] http://www.jb51.net/article/76695.htm HTML 5中的full screen,目前可以在除IE和opera外的浏览器中使用 ,有的时候用来做全屏AP ...

  9. MySql——Explain执行计划详解

    使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈. explain执行计划包含的信息 其中最重要的字段为:i ...

  10. oracle基础知识(六)----spfile与pfile

    一, 认识参数文件      Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件.它们是在数据库实例启动时候加载的,决定了数据库的物理 结构.内存.数据库的限制及系统大量的默认值 ...