SQLServer 2005触发器调用批处理文件

2024-05-01 01:48

本文主要是介绍SQLServer 2005触发器调用批处理文件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.首先在Visual Stdio 2005中建立一个 VB 数据库Sql Server 工程,工程名为【MyCLRProcedure】,如下图


2.选择数据库链接

3.在新建工程上右键 → 追加  → StoredProcedures,选择StoredProcedures ,设置名称为【MyProc.vb】,程序如下

Partial   Public   Class StoredProcedures
    
<Microsoft.SqlServer.Server.SqlProcedure()> _
    
Public Shared Sub  MyProc ()
        
' コードをここに追加してください
    End Sub

End Class

在绿色注释部分追加调用bat文件的操作,本例是创建一个文件夹,带一个参数做为文件夹名。
run.bat文件内容如下:

@echo  ■■■Trigger Test  Start  ■■■
if   " %1 " == ""   goto   END
set  DIRNAME = %1

rmdir  c: temp %DIRNAME%
mkdir  c: temp %DIRNAME%

:END
@echo  ■■■Trigger Test  End    ■■■
pause

修改MyProc方法如下,追加一个参数【dirname】做为文件夹名:

     Public   Shared   Sub MyProc(ByVal dirname As String)
        
' コードをここに追加してください
        SqlContext.Pipe.Send("MyProcStart!")
        
Try
            
Dim objExecuteFile As New System.Diagnostics.ProcessStartInfo
            
Dim objExecute As New System.Diagnostics.Process
            objExecuteFile.FileName = "c: emp un.bat"
            SqlContext.Pipe.Send(objExecuteFile.FileName)
            objExecuteFile.Arguments = dirname
            objExecuteFile.UseShellExecute 
= True
            objExecute.StartInfo 
= objExecuteFile
            objExecute.Start()
        
Catch ex As Exception
            SqlContext.Pipe.Send(ex.ToString)
        
End Try
        SqlContext.Pipe.Send(
"MyProc End!")
    
End Sub

将做成的【MyProc.vb】拷贝到【D:】盘根目录,打开【Microsoft .NET Framework SDK v2.0】  → 【SDK Command Prompt】,键入以下命令

C:Program FilesMicrosoft Visual Studio  8 SDKv2 .0 >vbc /target:library D:MyProc.vb
Microsoft(R) Visual Basic Compiler Version 
8.0.50727.42
for Microsoft(R) .NET Framework version 
2.0.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.


C:Program FilesMicrosoft Visual Studio 
8 SDKv2 .0 >

生成【MyProc.dll】文件,拷贝至数据库服务器上的【C:/temp】目录下。

4.打开【Microsoft SQL Server 2005】 → 【SQL Server Management Studio】,在【DataBase】 【数据库名】 【Programming】 【ASSEMBLY】上右键选中【New ASSEMBLY】,弹出新窗口,选择上步生成的【MyProc.dll】文件。

点击OK即可

5.建立一个Procedure,在上步【ASSEMBLY】同级别目录下选择【StoredProcedures】,右键新建一个【StoredProcedures】,修改内容为如下表示:

CREATE   PROCEDURE  MyProcedure
      
@dirname     nchar ( 10 )
AS
EXTERNAL NAME MyProc.StoredProcedures.MyProc

6.在需要操作的数据表下的【Trigger】上右键选择新建,修改为如下:
CREATE   TRIGGER  MyTrigger 
   
ON   DateTable 
   AFTER 
INSERT , DELETE , UPDATE
AS  
EXEC  MyProcedure AABBCC

其中【AABBCC】为传入的参数。点击OK,创建完毕,下面进行测试。

7.执行数据表删除语句,查看后台信息。

DELETE   FROM  DateTable  where  id  =   ' 11 '

后台信息如下:
MyProc Start!
c:/temp/run.bat
MyProc End!

(1 行処理されました)

再看服务器上【C:/temp】目录下,新建了一个【AABBCC】文件夹。

这篇关于SQLServer 2005触发器调用批处理文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/950438

相关文章

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

MySQL的配置文件详解及实例代码

《MySQL的配置文件详解及实例代码》MySQL的配置文件是服务器运行的重要组成部分,用于设置服务器操作的各种参数,下面:本文主要介绍MySQL配置文件的相关资料,文中通过代码介绍的非常详细,需要... 目录前言一、配置文件结构1.[mysqld]2.[client]3.[mysql]4.[mysqldum

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

SQL Server 查询数据库及数据文件大小的方法

《SQLServer查询数据库及数据文件大小的方法》文章介绍了查询数据库大小的SQL方法及存储过程实现,涵盖当前数据库、所有数据库的总大小及文件明细,本文结合实例代码给大家介绍的非常详细,感兴趣的... 目录1. 直接使用SQL1.1 查询当前数据库大小1.2 查询所有数据库的大小1.3 查询每个数据库的详

MySQL中REPLACE函数与语句举例详解

《MySQL中REPLACE函数与语句举例详解》在MySQL中REPLACE函数是一个用于处理字符串的强大工具,它的主要功能是替换字符串中的某些子字符串,:本文主要介绍MySQL中REPLACE函... 目录一、REPLACE()函数语法:参数说明:功能说明:示例:二、REPLACE INTO语句语法:参数

MySQL设置密码复杂度策略的完整步骤(附代码示例)

《MySQL设置密码复杂度策略的完整步骤(附代码示例)》MySQL密码策略还可能包括密码复杂度的检查,如是否要求密码包含大写字母、小写字母、数字和特殊字符等,:本文主要介绍MySQL设置密码复杂度... 目录前言1. 使用 validate_password 插件1.1 启用 validate_passwo

MySQL 数据库表操作完全指南:创建、读取、更新与删除实战

《MySQL数据库表操作完全指南:创建、读取、更新与删除实战》本文系统讲解MySQL表的增删查改(CURD)操作,涵盖创建、更新、查询、删除及插入查询结果,也是贯穿各类项目开发全流程的基础数据交互原... 目录mysql系列前言一、Create(创建)并插入数据1.1 单行数据 + 全列插入1.2 多行数据