在SQL2005中执行.Net代码1.    在VS.Net2005中新建”SQL Server 项目”;
在SQL2005中执行.Net代码
2.    创建数据库并将数据库显式标记为可信。
在SQL2005中执行.Net代码     因为无法立即信任附加到 SQL Server 实例的数据库,所以不允许数据库访问超出数据库范围的资源,直到数据库已显式标记为可信。此外,旨在访问数据库以外资源的模块和带有 EXTERNAL_ACCESS 或 UNSAFE 权限设置的程序集还需要其他条件才能成功运行。
在SQL2005中执行.Net代码默认情况下,此设置为 
OFF,但是可以使用 ALTER DATABASE 语句将其设置为 ON
在SQL2005中执行.Net代码  
create database km2db 
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
USE km2db 
在SQL2005中执行.Net代码
GO
在SQL2005中执行.Net代码
ALTER DATABASE km2db SET TRUSTWORTHY ON
在SQL2005中执行.Net代码
3.    在SQL 2005 中 启用 "clr enabled" 配置选项;
在SQL2005中执行.Net代码运行下面的代码
在SQL2005中执行.Net代码
--启用"clr enabled"配置选项,在.Net Framewrok中执行用户代码.
在SQL2005中执行.Net代码
exec sp_configure 'show advanced options''1';
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
reconfigure;
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
exec sp_configure 'clr enabled''1'
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
reconfigure;
在SQL2005中执行.Net代码
exec sp_configure 'show advanced options''1';
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
--关闭clr enabled,可以使用
在SQL2005中执行.Net代码
EXEC sp_configure 'clr enabled'0 
在SQL2005中执行.Net代码
GO 
在SQL2005中执行.Net代码
RECONFIGURE 
在SQL2005中执行.Net代码
GO
在SQL2005中执行.Net代码
4.    如果你的数据库是从 SQL Server 的早期版本升级到 SQL Server 2005 ,该数据库将保留其现有的兼容级别。此时你要将兼容级别设为 90。SQL Server 2005 的所有安装,默认兼容级别均为 90
在SQL2005中执行.Net代码 
EXEC sp_dbcmptlevel 'km2db''90';
在SQL2005中执行.Net代码
GO
在SQL2005中执行.Net代码
5.    在此项目中单击添加—>添加新项,添加存储过程、触发器、用户定义的函数等。
在SQL2005中执行.Net代码   
[Microsoft.SqlServer.Server.SqlProcedure]
在SQL2005中执行.Net代码    
public static int   MrFuPro1()
在SQL2005中执行.Net代码    {
在SQL2005中执行.Net代码        
// 在此处放置代码
在SQL2005中执行.Net代码        
return 2;
在SQL2005中执行.Net代码    }
在SQL2005中执行.Net代码    
[Microsoft.SqlServer.Server.SqlProcedure]
在SQL2005中执行.Net代码    
public static void selectProcedure() 
在SQL2005中执行.Net代码    {
在SQL2005中执行.Net代码        SqlCommand command 
= new SqlCommand("select * from zk_preasign"); 
在SQL2005中执行.Net代码        SqlContext.
Pipe.ExecuteAndSend(command); 
在SQL2005中执行.Net代码    }
在SQL2005中执行.Net代码
在SQL2005中执行.Net代码    
[Microsoft.SqlServer.Server.SqlProcedure]
在SQL2005中执行.Net代码    
public static int AddNum(int x,int y,out string execResult)
在SQL2005中执行.Net代码    {
在SQL2005中执行.Net代码      
int   z = x + y;
在SQL2005中执行.Net代码      
if (z > 0)
在SQL2005中执行.Net代码      {
在SQL2005中执行.Net代码          execResult 
= "结果大于零";
在SQL2005中执行.Net代码      }
在SQL2005中执行.Net代码      
else
在SQL2005中执行.Net代码      {
在SQL2005中执行.Net代码          execResult 
= "结果小于等零";
在SQL2005中执行.Net代码      }
在SQL2005中执行.Net代码      
return z;
在SQL2005中执行.Net代码    }
在SQL2005中执行.Net代码
6.    此时回到sql查询分析器,展开km2db可编程性—>存储过程  将看到所有新生成的存储过程。
在SQL2005中执行.Net代码
7.    在查询分析器中执行存储过程,以检验新生成的存储过程的有效性.
在SQL2005中执行.Net代码    
use km2db
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
declare @ret int
在SQL2005中执行.Net代码
exec @ret= mrfupro1
在SQL2005中执行.Net代码
print @ret
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
exec selectProcedure
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
在SQL2005中执行.Net代码
declare @ret2 int,
在SQL2005中执行.Net代码
@execResult varchar(20)
在SQL2005中执行.Net代码
exec @ret2=addnum 10,20,@execResult output
在SQL2005中执行.Net代码
print @ret2
在SQL2005中执行.Net代码
print @execResult
在SQL2005中执行.Net代码
go
在SQL2005中执行.Net代码
8.如果你在你的程序集中调用了其它dll ,可通过下面的方式在sql2005中注册.
在SQL2005中执行.Net代码   如注册System.Messaging.dll;
在SQL2005中执行.Net代码
CREATE ASSEMBLY Messaging
在SQL2005中执行.Net代码
AUTHORIZATION dbo
在SQL2005中执行.Net代码
FROM 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Messaging.dll'
在SQL2005中执行.Net代码
WITH PERMISSION_SET = UNSAFE
在SQL2005中执行.Net代码
GO
在SQL2005中执行.Net代码
8.    如果你是在客户机上部署你的dll,在sql2005中通过以下方式进行。
在SQL2005中执行.Net代码    
--如新建的sql server项目
在SQL2005中执行.Net代码--
命名空间为: mrfuDBOP
在SQL2005中执行.Net代码--
类名为:cMrPro
在SQL2005中执行.Net代码--
方法为:public static int AddNum(int x,int y,out string execResult)
在SQL2005中执行.Net代码
ALTER DATABASE km2db SET TRUSTWORTHY ON
在SQL2005中执行.Net代码
GO
在SQL2005中执行.Net代码
CREATE ASSEMBLY mrfuDBOP --你的程序集命名空间名称
在SQL2005中执行.Net代码
AUTHORIZATION dbo
在SQL2005中执行.Net代码
FROM 'F:\mrfuDBOP.dll'
在SQL2005中执行.Net代码
WITH PERMISSION_SET = UNSAFE
在SQL2005中执行.Net代码
GO
在SQL2005中执行.Net代码
CREATE PROCEDURE pro_execAddNum
在SQL2005中执行.Net代码
@ret2 int,
在SQL2005中执行.Net代码
@execResult varchar(20) output
在SQL2005中执行.Net代码
AS EXTERNAL NAME mrfuDBOP.[mrfuDBOP.cMrPro].AddNum
在SQL2005中执行.Net代码
GO
在SQL2005中执行.Net代码

SQL2005NewTec  Petshop4.0Architecture

相关文章: