`
WolfSoft
  • 浏览: 6963 次
  • 性别: Icon_minigender_1
  • 来自: 西安
最近访客 更多访客>>
社区版块
存档分类
最新评论

SQLSERVER DLL的基本操作和实例

阅读更多

/**
  *删除数据库中已经存在的表
 **/
if exists(select * from sys.objects where name='tb_grade')
drop table tb_grade--删除tb_grade表
go
if exists(select * from sys.objects where name='tb_student')
drop table tb_student--删除tb_grade表
go

/**
  *创建数据表
 **/
create table tb_student--创建tb_student
(
   student_id int identity(1,1),--学生编号(主键,自动增长)
   student_name nvarchar(30) not null,--学生姓名(不能为空)  
   student_sex char(10) not null,--学生性别(不能为空)
   student_age int default(18),--学生年龄(默认为18)
   constraint pk_student_id primary key (student_id)
)
go
create table tb_grade--创建tb_grade
(
  grade_id int identity(1,1),--成绩编号(主键,自动增长1)
  student_id int,--外键(引用学生表student_id)
  english float,--英语成绩
  math float,--数学成绩
  constraint pk_grade_id primary key (grade_id),--为表tb_student创建主键
  constraint fk_student_id foreign key(student_id) references tb_student(student_id)--创建外键关系
)
 
select * from tb_student
select * from  tb_grade

/**
  *创建视图
 **/

/**
 *创建视图的语法
 *
 CREATE VIEW  view_name
 AS
 select_statement
*
*
*/

if exists (select * from sys.objects where name='vw_student')
drop view vw_student --删除已经存在的vw_student视图
go
create view vw_student--创建视图vw_student
as
select * from tb_student inner join tb_grade on tb_student.student_id=tb_grade.student_id
go

/**
  *创建索引
 **/

/**
 *创建索引的语法
 *
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
    ON { table | view } ( column [ ASC | DESC ] [ ,...n ] )
[ WITH < index_option > [ ,...n] ]
[ ON filegroup ]

< index_option > ::=
    { PAD_INDEX |
        FILLFACTOR = fillfactor |
        IGNORE_DUP_KEY |
        DROP_EXISTING |
    STATISTICS_NORECOMPUTE |
    SORT_IN_TEMPDB 
}
*
*
*/

if exists (select * from sys.indexes where name='index_student_id')
drop index index_student_id on tb_student --删除tb_student中的索引student_id
--创建索引
create index index_student_id on tb_student(student_id)
go

/**
  *创建存储过程
 **/

/**
 *
 *创建存储过程的语法
 *
CREATE PROC [ EDURE ] procedure_name [ ; number ]
    [ { @parameter data_type }
        [ VARYING ] [ = default ] [ OUTPUT ]
    ] [ ,...n ]

[ WITH
    { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ]

[ FOR REPLICATION ]

AS sql_statement [ ...n ]
*
*/
--不带参数的存储过程
if exists (select * from  sys.objects where name='find_student')
drop procedure find_student
go
create procedure find_student
as
select * from tb_student
go
---调用存储过程
exec find_student
go
--带输入参数的存储过程
if exists (select * from  sys.objects where name='add_student_grade')
drop procedure add_student_grade
go
create procedure add_student_grade
--定义输入参数
@studentName nvarchar(30),
@studentSex char(10),
@studentAge int=18,
@gradeEnglish float,
@gradeMath float
as
    declare @studentId int
    declare @n int
    set @n=0
    begin transaction tran_add --开启事务
    insert into tb_student(student_name,student_sex,student_age) values(@studentName,@studentSex,@studentAge)
    set @n=@@error   
 select @studentId=max(student_id) from tb_student
 set @n=@@error 
    insert into tb_grade (student_id,english,math) values(@studentId,@gradeEnglish,@gradeMath)
 set @n=@@error 
    if(@n<>0)
       begin
           rollback transaction tran_add --回滚事务
       end
    else
       begin
     commit transaction tran_add  --提交事务
       end
go
---调用存储过程
exec add_student_grade '张三','男',20,80,88
go
--带输出参数的存储过程
if exists (select * from  sys.objects where name='getCount')
drop procedure getCount
go
create procedure getCount
@n int output
as
select @n=count(*) from tb_student
go
--调用带输出参数的存储过程
declare @n int
execute getCount @n output
select @n
  
/**
 *创建触发器
 **/
/**
 *
 *创建触发器的语法
 *
 *
CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
    { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
        [ WITH APPEND ]
        [ NOT FOR REPLICATION ]
        AS
        [ { IF UPDATE ( column )
            [ { AND | OR } UPDATE ( column ) ]
                [ ...n ]
        | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
                { comparison_operator } column_bitmask [ ...n ]
        } ]
        sql_statement [ ...n ]
    }
}
*
*
**/

IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'reminder' AND type = 'TR')
DROP TRIGGER reminder --删除触发器reminder
GO
--创建触发器reminder(如果对表tb_student进行添加和更新信息时出发)
CREATE TRIGGER reminder
ON tb_student
FOR INSERT, UPDATE
AS
RAISERROR (50009, 16, 10)
GO
---创建DELETE触发器
IF EXISTS (SELECT name FROM sysobjects
WHERE name = 'sendemail' AND type = 'TR')
DROP TRIGGER sendemail--删除触发器sendemail
GO
--创建触发器
CREATE TRIGGER sendemail
ON tb_grade
FOR DELETE
AS
EXEC master..xp_sendmail' MaBin',
'Don''t forget to print a report for the distributors.'
GO

分享到:
评论
1 楼 念不动 2011-04-19  
希望你在世界的某个地方一切都好...
希望这个javaeye可以为你永远保留这个博客...

相关推荐

    Microsoft SQL Server 2005 Express Edition SP3

    如果您的计算机已安装 SQL Server 2000 管理工具和 SQL Server Express 的默认实例,则可以使用 SQL Server 安装程序安装 SQL Server 2000 的默认实例。但是,这样做会禁用已安装的 SQL Server Express 实例。因此,...

    MS SQL Server 绿色版 v3.0

    MS Sql Server 绿色版 V3.0 说明---------- 首先感谢各位朋友在制作过程中的支持和热心帮助,没有你们的支持,我是不会做完 3.0 版本的。 其次还是那句老话,版权是人家 M$(微软) 的。★ 本版本修改如下:1 重新写了...

    SQLSERVER EXCEL报表生成器

    用配置文件生成器生成配置文件,导入配置文件然后调用DLL类库到处SQL SERVER的数据到EXCEL表格。 注意:基于MS .Net Framework 4.0 实例代码: Dim r As New AMReport.AmReport Dim app As New Microsoft.Office....

    sqlservr64.rar

    2、安装到SqlServer服务的时候提示启动服务失败(提示重试的时候),这里就是关键啦,下载本文的两个附件,里面是SP4(2005.90.5000.0)版本的sqlservr.exe和sqlos.dll。 sqlservr64.rar sqlservr32.rar 3、进入SQL ...

    绿色 Sql Server 原理及全新管理工具

    当从命令提示符下启动 SQLServer 时,可使用该选项缩短启动 SQL Server 的时间。(注意:当使用该选项时,无法通过使用 SQLServer 服务管理器或 net stop 命令停止 SQL Server,而且如果已从 Microsoft Windows NT? ...

    全文检索实例(vs 2017项目+MS SQL Server 数据库 源码注释详尽)

    全文检索实例(vs 2017项目+MS SQL Server 数据库 源码注释详尽) 特点: 1、真正修改配置文件就可以投入正式使用。 2、本实例l采用ucene.net 3.0.3+盘古分词 ,内嵌汉字简拼模块、全拼模块、多音字全拼模块; 3、本...

    动态创建SQL SERVER数据库.rar_Vb6动态创建SQL SERVER数据库_operation

    Vb6动态创建SQL SERVER数据库,源码调试说明:运行本实例,需要引用DB_Operation.dll文件。。创建SQL Server数据表,程序自带有DB_Operation.dll注册卸载程序,双击运行即可。测试所用的Database文件在Database...

    C# 用命令附加数据库到SQLSERVER 简单实现

    引入这个dll,调用方法:... //参数列表:第一个是数据库名和数据库文件名要一样的,第二个是数据库中任意一个表名,SQL服务器实例名必须为SQL2005! 把mdf文件个ldf 文件放到exe程序目录,调试的时候是debug 文件夹。

    Visual C# .NET精彩编程实例集锦

    实例117 如何更新SQL Server数据库 实例118 如何读写XML文件 实例119 如何读取EXCEL文件 实例120 如何取得聚合函数返回值 实例121 如何直接操作主从关系表 实例122 如何以Web方式查询Access数据库 实例123 如何使用...

    数据库管理系统SQL-Server.doc

    SQL Server的系统目录 a) \BackUp 存放备份文件 b) \Binn 存放客户端和服务器端可执行文件与DLL文件 c) \Books 存放联机文档 d) \Data 存放数据库文件,包括系统数据库,实例数据库和用户数据库 e) \DevTools\...

    Windows平台实现PHP连接SQL Server2008的方法

    如果你需要和sql server通信需要到http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx自行下载微软提供的The SQL Server Driver for PHP。这是一个自解压文件,解压后会得到以下几个文件: ...

    通过kepserver实现OPC的数据读写C#实例程序

    通过kepserver实现OPC的数据读写C#实例,首先,新建C#应用程序,命名为kepOPC_test,然后将OPCAutomation.dll进行引用,并在代码页中添加如下语句进行引用:using OPCAutomation; 列举服务器名,列举OPC变量,双击...

    C++Builder精彩编程实例集锦的源代码前3部分.rar

    实例185 如何获取操作系统的产品序列号和产品名称 实例186 如何获取和设置鼠标双击响应速度 实例187 如何弹出和关闭光驱 实例188 如何检测网络连接 实例189 如何创建拨号网络 第六部分 数据库应用 实例190 ...

    C# 启动 SQL Server 服务的实例

    实例如下: //首先要添加 System.ServiceProcess.dll 引用 ServiceController sc = new ServiceController("MSSQLSERVER"); //判断服务是否已经关闭 if (sc.Status == ServiceControllerStatus.Stopped) { sc....

    PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】

    本文实例讲述了PHP7使用ODBC连接SQL Server2008 R2数据库。分享给大家供大家参考,具体如下: 我用的是:WampServer集成工具,PHP版本为7.0.29,数据库为SQL Server 2008 R2; 注意:在连接数据库时,需要进入X:\...

    《Visual C# .NET精彩编程实例集锦》配套光盘文件【全】

    实例115 如何创建sqlserver数据库 实例116 如何读写sqlserver数据库 实例117 如何更新sqlserver数据库 实例118 如何读写xml文件 实例119 如何读取excel文件 实例120 如何取得聚合函数返回值 实例121 如何直接...

    SQL Server中调用C#类中的方法实例(使用.NET程序集)

    我在.net程序里操作数据时将一些字段数据加密了,这些数据是很多系统共用的,其中一delphi程序也需要用到,并且需要将数据解密,由于我在.net里加密的方式比较特殊,在delphi程序里解密比较繁琐且要消耗很多时间,...

    VB实现的SQL复合查询实例.rar

    VB实现的SQL复合查询实例,这个多重复杂条件的查询是基于SQLQueryTJ.dll来实现,这个控件可很好的实现VB与数据库间的多条件查询功能。运行界面如演示截图所示。

Global site tag (gtag.js) - Google Analytics