SQL Server ->> 在SQL Server中创建ASSEMBLY
首先要把数据库的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的更多相关文章
- SQL Server 在多个数据库中创建同一个存储过程(Create Same Stored Procedure in All Databases)
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 遇到的问题(Problems) 实现代码(SQL Codes) 方法一:拼接SQL: 方法二: ...
- 关于SQL Server 镜像数据库快照的创建及使用
从SQL Server 2005 SP 起,SQL 开始支持数据库镜像.它的设计目的是试图为SQL Server 提供一个具有实时性数据同步的灾难恢复技术,即能够提供数据冗余备份,切换起来比较方便.每 ...
- Linux服务器中创建Oracle数据库实例
紧接上篇,在Linux服务器已经完成对Oracle数据库软件的安装后,接下来要创建Oracle实例,看图说话: [su – oracle echo $DISPLAY export DISPLAY=10 ...
- mysql中创建函数时报错信息
报错信息如下 ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its ...
- 在64位SQL Server中创建Oracle的链接服务器
当我们同时使用SQL Server和Oracle来存储数据时,经常会用到跨库查询.为了方便使用跨库查询,一个最好的办法就是通过创建链接服务器来实现.既可以在SQL Server中创建Oracle的链接 ...
- ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接
原文:ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 安装ArcSDE for SQL Server,最后一步成功后的界面如下: 在ArcMap中创建ArcSDE ...
- 转 在SQL Server中创建用户角色及授权(使用SQL语句)
目录 要想成功访问 SQL Server 数据库中的数据 我们需要两个方面的授权 完整的代码示例 使用存储过程来完成用户创建 实例 要想成功访问 SQL Server 数据库中的数据, 我们需要两个 ...
- sql server中创建链接服务器图解教程
转自sql server中创建链接服务器图解教程 1.展开服务器对象-->链接服务器-->右击"新建链接服务器" 注意:必须以数据库管理员身份登录(通常也就是sa帐号) ...
- SQL Server 扩展事件(Extented Events)从入门到进阶(2)——在GUI中创建基础扩展事件
本文属于 SQL Server 扩展事件(Extented Events)从入门到进阶 系列 第一篇文章中提到了如何在Profiler中创建跟踪(trace),并以服务器端(server-side)跟 ...
随机推荐
- Loj 6432. 「PKUSC2018」真实排名 (组合数)
题面 Loj 题解 枚举每一个点 分两种情况 翻倍or不翻倍 \(1.\)如果这个点\(i\)翻倍, 要保持排名不变,哪些必须翻倍,哪些可以翻倍? 必须翻倍: \(a[i] \leq a[x] < ...
- MVC4设置伪静态---路由伪静态
有些客户要求设置静态的,为了完成需求,而且更简单的做法就是设置伪静态,例如:http://localhost:80/Home/Index.html ,也可以访问http://localhost:80/ ...
- HDU_2082 找单词 【母函数的应用】
题目: 假设有x1个字母A, x2个字母B,..... x26个字母Z,同时假设字母A的价值为1,字母B的价值为2,..... 字母Z的价值为26.那么,对于给定的字母,可以找到多少价值<=50 ...
- F. Clear the String(区间 DP )//每次都删除一个相同字符的子串 , 最小多少次
https://codeforces.com/contest/1132/problem/F 借鉴:https://www.cnblogs.com/chhokmah/p/10508762.html 题意 ...
- 1091 N-自守数 (15 分)
如果某个数 K 的平方乘以 N 以后,结果的末尾几位数等于 K,那么就称这个数为“N-自守数”.例如 3×922=25392,而 25392 的末尾两位正好是 92,所以 92 是一个 3-自守 ...
- poj1318 Word Amalgamation 字符串排序(qsort)
Word Amalgamation Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 9794 Accepted: 4701 ...
- 墨菲定律&吉德林法则&吉尔伯特定律&沃尔森法则&福克兰定律
一.墨菲定律:越害怕什么,就越会发生什么 二.吉德林法则:把问题清楚地写下来,就已经解决一半了 三.吉尔伯特定律:工作中的最大问题就是没人跟你说该如何去做 四.沃尔森法则:把信息和情报排在第一位,金钱 ...
- DataX 安装和使用
阿里云介绍: 1. 下载安装包.作为阿里主要的数据传输工具Datax,阿里已经完全开源到github上面了.下载地址(https://github.com/alibaba/DataX). 2. 安装环 ...
- java se系列(三) 顺序语句、if...else、switch、While、do-while、for、break、continue
1 顺序语句 语句:使用分号分隔的代码称作为一个语句. 注意:没有写任何代码只是一个分号的时候,也是一条语句,称作空语句. 顺序语句就是按照从上往下的顺序执行的语句. 2 判断(if…else) 什么 ...
- DB Intro - MongoDB Relations
https://www.quackit.com/mongodb/tutorial/mongodb_create_a_relationship.cfm