CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

我自建了一个函数,怎么也加不到数据库字段默认值中。

楼主aybc(aybc)2003-11-01 16:48:06 在 MS-SQL Server / 基础类 提问

函数如下:语法正确,已建立。  
  CREATE     function   GetOrd(@SortId   char(10))  
  returns   char(10)  
  as  
  begin  
    declare   @aord   char(10)  
    select   @aord=cast(isnull(max(cast(rtrim(maxid)   as   int)),10000)+1   as   char(10))   from   sorts   where   sid=@SortId  
    return(@aord)  
  end 问题点数:10、回复次数:13Top

1 楼zjcxc(邹建)回复于 2003-11-01 16:53:09 得分 0

你的表结构?Top

2 楼txlicenhe(马可)回复于 2003-11-01 16:55:32 得分 0

dbo.GetOrd(参数)  
  Top

3 楼zjcxc(邹建)回复于 2003-11-01 16:56:41 得分 0

--在现有表的基础上增加,用:  
   
  ALTER   TABLE   表名   ADD   CONSTRAINT  
  DF__表名__字段名__09B45E9A   DEFAULT   dbo.GetOrd(1)   FOR   字段名  
   
  --创建表时直接设置  
  create   table   表名(字段名   char(10)   default   dbo.getord(1))Top

4 楼aybc(aybc)回复于 2003-11-01 16:58:15 得分 0

表结构是:sorts  
                      sid:char(10)   ,maxid(char10) //默认设置,函数加到这个字段的默认值中。  
  Top

5 楼aybc(aybc)回复于 2003-11-01 17:00:45 得分 0

zjcxc(邹建)老兄的可以,我开始用的是dbo.getord(@sortid),  
    为什么用 dbo.getord(1)可以加上去呢,1是什么意思。Top

6 楼txlicenhe(马可)回复于 2003-11-01 17:01:21 得分 0

ALTER   TABLE   sorts   ADD   CONSTRAINT  
  DF_名   DEFAULT   dbo.GetOrd(sid)   FOR   sidTop

7 楼zjcxc(邹建)回复于 2003-11-01 17:03:49 得分 0

1是函数的参数啊.  
  用   dbo.getord(@sortid)   当然不行,你的变量   @sortid   没有定义啊.Top

8 楼aybc(aybc)回复于 2003-11-01 17:06:07 得分 0

如果参数值不是1呢。Top

9 楼txlicenhe(马可)回复于 2003-11-01 17:11:11 得分 2

楼主的意思应该是这个:   dbo.GetOrd(sid)Top

10 楼zjcxc(邹建)回复于 2003-11-01 17:18:18 得分 0

将你的要求说一说.Top

11 楼zjcxc(邹建)回复于 2003-11-01 17:37:00 得分 3

上面没注意看.  
   
  表结构是:sorts  
                      sid:char(10)   ,maxid(char10) //默认设置,函数加到这个字段的默认值中。  
   
   
  你这个是不能用默认值来处理的,因为sid是你插入数据的时候才提供的,这时函数不能取得此值,你设置的时候就知道,它会提示出错.  
   
  改用触发器吧.Top

12 楼pengdali()回复于 2003-11-01 17:58:22 得分 2

写默认值的时候一定要:  
  dbo.xxx()  
   
  dbo.一定不要忘了。Top

13 楼napoleonlzh(搜索客)回复于 2003-11-01 19:05:40 得分 3

CREATE     function   dbo.GetOrd(@SortId   char(10))  
  returns   char(10)  
  as  
  begin  
    declare   @aord   char(10)  
    select   @aord=cast(isnull(max(cast(rtrim(maxid)   as   int)),10000)+1   as   char(10))   from   sorts   where   sid=@SortId  
    return(@aord)  
  end  
  Top

相关问题

  • sql server数据库中时间类型的字段如何设置默认值
  • 急救~~如何修改数据库某个字段的默认值啊
  • 如何给数据库(Paradox)增加一个新的字段,并给于默认值?
  • 怎样设置sql数据库中datetime型字段的默认值,获得当前时间?
  • 请问access数据库中如何设置字段默认值为 空字符串
  • access数据库中三个字段名ABC,我想A的默认值为B+C可以嘛?
  • Access数据库里面,字段类型为文本的,默认值是什么啊?
  • 谁知道用SQL语句为access数据库增加字段时怎样设置它的默认值?
  • 如何取得数据库中某个字段的属性(类型,长度,默认值...)
  • access数据库问题:如何在程序中设置和修改某一字段的默认值呢?

关键词

  • 函数
  • 字段
  • 默认值
  • getord
  • aord
  • sortid
  • 字段名
  • maxid
  • dbo
  • sid

得分解答快速导航

  • 帖主:aybc
  • txlicenhe
  • zjcxc
  • pengdali
  • napoleonlzh

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo