用.Net自动部署很是方便,不再啰嗦,下边要说的是没有条件自动部署时该如何处理。
1、用过适当权限的用户进数据库,最省事的用Sa登录
2、ALTER DATABASE 数据库名(例:DeviceCriterion2 ) SET TRUSTWORTHY ON
3、Create assembly 要创建的程序集名称(例:Formula_SQL )
from DLL路径(例:‘C:/Formula_SQL.dll’)
with permission_set = unsafe
4、把程序集中的存储过程创建到数据库中:
例:create procedure Formula_AutoUpdateData
@dataHypotaxisID uniqueidentifier,
@dateTime datetime,
@tableName nvarchar(4000),
@updatedColunmName nvarchar(4000),
@updatedValue nvarchar(4000)
as
external name Formula_SQL.[StoredProcedures].Formula_AutoUpdateData
说明:Formula_SQL(程序集名称).[StoredProcedures(程序集中的类名称)].Formula_AutoUpdateData(类中的方法名)
参数顺序与方法中的参数顺序相同,且要把方法中的参数类型转换为数据库中对应的类型
5、如果程序集已经部署完毕,存储过程也创建完成,想要修改程序集,则:
ALTER assembly 程序集名称(例:Formula_SQL) from DLL路径(例:‘C:/Formula_SQL.dll’)
6、如果提示有关联文件,更新失败,则先执行如下语句:
ALTER ASSEMBLY 程序集名称(例:Formula_SQL) DROP FILe ALL
再执行第五条中的语句就OK了。
1、用过适当权限的用户进数据库,最省事的用Sa登录
2、ALTER DATABASE 数据库名(例:DeviceCriterion2 ) SET TRUSTWORTHY ON
3、Create assembly 要创建的程序集名称(例:Formula_SQL )
from DLL路径(例:‘C:/Formula_SQL.dll’)
with permission_set = unsafe
4、把程序集中的存储过程创建到数据库中:
例:create procedure Formula_AutoUpdateData
@dataHypotaxisID uniqueidentifier,
@dateTime datetime,
@tableName nvarchar(4000),
@updatedColunmName nvarchar(4000),
@updatedValue nvarchar(4000)
as
external name Formula_SQL.[StoredProcedures].Formula_AutoUpdateData
说明:Formula_SQL(程序集名称).[StoredProcedures(程序集中的类名称)].Formula_AutoUpdateData(类中的方法名)
参数顺序与方法中的参数顺序相同,且要把方法中的参数类型转换为数据库中对应的类型
5、如果程序集已经部署完毕,存储过程也创建完成,想要修改程序集,则:
ALTER assembly 程序集名称(例:Formula_SQL) from DLL路径(例:‘C:/Formula_SQL.dll’)
6、如果提示有关联文件,更新失败,则先执行如下语句:
ALTER ASSEMBLY 程序集名称(例:Formula_SQL) DROP FILe ALL
再执行第五条中的语句就OK了。