`
zhangziyueup
  • 浏览: 1170362 次
文章分类
社区版块
存档分类
最新评论

MS-SQLServer2000中字符型数据自动编码的实现

 
阅读更多
最近做了三个问题,虽然很小,而且实现的也略显笨拙,但还是想记录下来,供大家参考一下,也满足一下自己的一种虚荣心,呵呵:)
问题一:
要求对一表中的字符数据进行自动编码,基本要求大概是:第一条数据编码为'FM00000',第二条为'FM00001',第三条为"FM00002',以次类推;刚好最近在练习写触发器,简单实现了一下.

实现思路:
建立主键为identity的表,利用表主键的identity属性,在触发器中拼成所需字符串,当向表insert数据时更新相应字段值

--建表
CREATE TABLE [dbo].[test_table] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[NAME] [varchar] (80)
) ON [PRIMARY]
GO

--建立触发器
CREATE trigger test_trigger on test_table
for insert
as update test_table
set name =substring('FM'+stuff('00000',5-len(i.id)+1,len(i.id),CAST(i.id AS char(5))),1,7)
from inserted i where i.id=test_table.id
GO

--测试插入语句
insert into test_table select 1 union select 2 union select 3 union select 4 union select 5


如不使用identity的字段上面的触发器也可以做修改,如下:

alter trigger test_trigger on test_table
for insert
as
declare @next_seq int
select @next_seq=(select cast ((select substring(max(name),3,5) from test_table) as int)+1)
update test_table
set name =substring(stuff('FM00000',7-len(@next_seq)+1,len(@next_seq),cast(@next_seq as char(5))),1,7)
--或者如此,这样更简单:
-- set name ='FM'+right('00000'+cast(@next_seq as varchar),5)
from inserted i where i.id=test_table.id
GO

问题二:
查询中实现对价格等货币值格式化为$0,000.00样式的问题,实现如下:
货币转换:
select '$'+convert(varchar,cast(tb字段 as money),1)

示例: select '$'+convert(varchar,cast(111111.5 as money),1)


问题三:
编写触发器,对一表中插入的日期数据修改为该日期所处月份的最后一天
脚本如下:
--建测试表
create table test_table (
id int IDENTITY(1,1) primary key,
mytime datetime NOT NULL)
GO

--建触发器
create trigger date_change_trigger on test_table
for insert
as
update test_table
set mytime = (select dateadd(ms,-3,dateadd(m,datediff(m,0,(select mytime from inserted))+1,0)))
from inserted i where test_table.id=i.id
GO
分享到:
评论

相关推荐

    实验1-大型数据库的基本操作

    (提示:将数据拷贝到Excel或者Txt文件,通过MS SQL Server提供的导入功能) (2)可否把完成的abc数据库进行备份?然后在另外一台数据库服务器上进行还原?(提示:MS SQL Server企业管理器提供数据库的备份和还原...

    实验三 数据管理操作

    始发地(sfd):字符型,可变长统一编码字符型20位长,非空 目的地(mdd):字符型,可变长统一编码字符型20位长,非空 原价(YJ):整型,非空,必须>=0 2.乘客表(Ckb)包括如下字段: 身份证号(sfzh):字符型...

    易语言程序免安装版下载

    修改外部数据库在4.12版中导致的不兼容问题,并增加了对MS SQL Server数据库中image和text字段类型的说明。 7. 修改扩展界面支持库一,禁止透明标签在父窗口刷新时自动刷新,以解决其导致窗口刷新缓冲的问题。 8....

    asp.net知识库

    asp.net 2.0-实现数据访问(1) ASP.NET 2.0 新特性 .NET 2.0里使用强类型数据创建多层应用 在MastPage中引用脚本资源 2.0正式版中callback的一些变化+使用示例(ASP.NET 2.0) asp.net 2.0 新特性 Visual Web ...

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

    实例229 如何消除MS-SQL Server数据库连接的登录框 实例230 如何连接MS-SQL Server数据库 实例231 如何连接MS-Access数据库 实例232 如何连接dBase数据库 实例233 如何使用ODBC连接Excel表 实例234 如何使用ADO...

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

    实例229 如何消除MS-SQL Server数据库连接的登录框 实例230 如何连接MS-SQL Server数据库 实例231 如何连接MS-Access数据库 实例232 如何连接dBase数据库 实例233 如何使用ODBC连接Excel表 实例234 如何使用ADO...

    第一部分 界面设计

    实例229 如何消除MS-SQL Server数据库连接的登录框 实例230 如何连接MS-SQL Server数据库 实例231 如何连接MS-Access数据库 实例232 如何连接dBase数据库 实例233 如何使用ODBC连接Excel表 实例234 如何使用ADO...

    软件工程工资管理系统

    在Microsoft SQL Server 2000的企业管理器中完成数据库和数据表的创建,具体SQL脚本请参见附录gz.sql SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_...

    vc++ 开发实例源码包

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 如题。 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了...

    JAVA上百实例源码以及开源项目源代码

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    net学习笔记及其他代码应用

    33.写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。 答:解1: select top 10 * from A where id not in (select top 30 id from A) 解2: select top 10 * ...

    超级有影响力霸气的Java面试题大全文档

     声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,...

    java 面试题 总结

    声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其...

    JAVA上百实例源码以及开源项目

     用JAVA开发的一个小型的目录监视系统,系统会每5秒自动扫描一次需要监视的目录,可以用来监视目录中文件大小及文件增减数目的变化。 Java日期选择控件完整源代码 14个目标文件 内容索引:JAVA源码,系统相关,日历,...

    vc++ 应用源码包_6

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    vc++ 应用源码包_1

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    vc++ 应用源码包_5

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    vc++ 应用源码包_3

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

    vc++ 应用源码包_2

    DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI服务,另类获取系统服务详细 大家都知道,现在流行的检测硬件软件视乎很神秘,我们要获得各种信息好像比较难.但大多数这种软件或多或少的使用了WMI,如果...

Global site tag (gtag.js) - Google Analytics