求教关于SQL ALTER 的两个简单问题! 1.我在设计期将一个PARADOX类型表中设置一个字段的默认值为0,在运行时要不断地将其默认值改为其它值,不知应该用什么语句实现。2.怎样用ALTER TABLE来修改数据表中一字段的数据类型?如smallint -> real? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.不懂为什么要这样做,是什么需求?用update。2.直接对字段进行类型设置即可,如能正确转换的,会自动转换。 2:一次只能改一个字段alter table [talbename] alter column [fieldname] fieldtype ex:create table t1(a int)alter table t1 alter column a varchar(10) 1、修改字段的值: update mytable set 字段1=123;2、修改字段类型 alter table xxbb modify( a21 number(12,2) ); 但是我用QUERY.SQL.Text := 'UPDATE MyDB SET PRIORCODE = 123';QUERY.EXECUTESQL;DBGRID中却什么也没了,明显数据表被关闭,不知具体应如何实现。另外解释一下我的用意,我要实现的功能是一个数据表中有三个字段:上级编码、本级编码和编码所代表的名字第一级时,上级编码默认为‘0’第二级编码的上级编码就得为第一级编码中的一个,我就想当用户在列表框中选择一个第一级编码后,第二级编码的上级就默认为所选择的编码而不应由用户来完成了。不知有什么更好的方法吗?谢谢各位指点!! 但是我用query1.sql.text := 'update mytable set afield = 33';query1.executesql;DBGrid中却什么东西都没了,明显数据表已被关闭。不知具体该如何实现?请给个具体的代码好吗?谢谢!!! SQL.Text := 'UPDATE MyDB SET PRIORCODE = 123';EXECUTESQL;Close ;Open ; //更新后重新打开数据集或者 Refresh 和默认值没有关系,update后dbgrid没有并不一定没有更新,你看一下数据库是否有更新。 是更新了 呜呜。我原先的记录的那个字段值全变成那个值了 :)我的意思是说保留原先记录值,而在我改变默认后再添加记录的话,就使用新设置的这个值,并不要改变原先的值,这也是我原先没有去考虑UPDATE的原因。在SQL SERVER的帮助中说要先删除原先默认(在alter命令中)再添加,但具体如何做我不知道,一本书上说用MODIFY修改字段属性,但MODIFY的命令却不能被识别我都快崩溃了。加分加分加分加分加分加分加分加分加分加分加分加分 怎么我昨天的回复没了?用UPDATE后我原来记录里的那个字段值就全变成了刚刚设定的那个值了。我的意图是: 保留原来的记录值不变,而需要是把默认值变动,随后增加的记录的值默认为新设置的默认值!!!!这也是我刚开始没去考虑UPDATE的原因。再加分----恳请老鸟们相助!!!!!!!!!!!!!!!!!! 怎么又看到昨天的回复了?CSDN出什么毛病了?UP UP ALTER TABLE t_name MODIFY(A DEFAULT 200)呵呵拿分 我最早试的就是MODIFY了,但是不管在SQL SERVER还是在DELPHI里,都出错,说MODIFY这个命令有误,到底怎么回事?另外我的程序不是用SQL SERVER,是用PARADOX。呵呵,有劳了!! 1.不用数据库的默认值,在程序中加一个变量保存这个值2.好像不能改变字段的属性,想一下,如果你把一个字段有字符串转变成int而且其中有数据会出现什么情况? 我有点同意 idilent() 的说法。不知他的意见大家是否认可。但为什么用alter table modify...不行呢?教科书上都是这么写的,可是个标准SQL命令呀!为什么在SQL SERVER 和 DELPHI中用它都出错。 字符-时间 用Desktop桌面数据库创建的表,用Ttable如何使用? 怎样写一个判断用户离开电脑的代码,比喻像屏保一样n分钟没动就自动保护,要求不要占太多系统资源 Tbatchmove 使用的一个问题 有谁用delphi6写过Corba客户端的程序,用IOr的命名服务调用方式,重赏 怎么样设置一个目录的属性,比如只读,隐藏。请指教!谢谢! MTS,COM和自动化三者的关系? 高手莫进 欢迎大家到电子部落中来 继承tobject的类能不能生成构件 ★★一启动turbo pascal 7.0 CPU的占用率就达到100% 怎么回事? Delphi中是否也有split函数?或者相同功能的函数?
2.直接对字段进行类型设置即可,如能正确转换的,会自动转换。
一次只能改一个字段
alter table [talbename] alter column [fieldname] fieldtype
ex:create table t1(a int)
alter table t1 alter column a varchar(10)
update mytable set 字段1=123;2、修改字段类型
alter table xxbb modify( a21 number(12,2) );
QUERY.SQL.Text := 'UPDATE MyDB SET PRIORCODE = 123';
QUERY.EXECUTESQL;
DBGRID中却什么也没了,明显数据表被关闭,不知具体应如何实现。另外解释一下我的用意,我要实现的功能是一个数据表中有三个字段:
上级编码、本级编码和编码所代表的名字
第一级时,上级编码默认为‘0’
第二级编码的上级编码就得为第一级编码中的一个,我就想当用户在列表框中选择一个第一级编码后,第二级编码的上级就默认为所选择的编码而不应由用户来完成了。不知有什么更好的方法吗?
谢谢各位指点!!
query1.sql.text := 'update mytable set afield = 33';
query1.executesql;
DBGrid中却什么东西都没了,明显数据表已被关闭。不知具体该如何实现?
请给个具体的代码好吗?谢谢!!!
EXECUTESQL;Close ;
Open ; //更新后重新打开数据集或者 Refresh
我原先的记录的那个字段值全变成那个值了 :)我的意思是说保留原先记录值,而在我改变默认后再添加记录的话,就使用新设置的这个值,并不要改变原先的值,这也是我原先没有去考虑UPDATE的原因。在SQL SERVER的帮助中说要先删除原先默认(在alter命令中)再添加,但具体如何做我不知道,一本书上说用MODIFY修改字段属性,但MODIFY的命令却不能被识别
我都快崩溃了。加分加分加分加分加分加分加分加分加分加分加分加分
用UPDATE后我原来记录里的那个字段值就全变成了刚刚设定的那个值了。我的意图是: 保留原来的记录值不变,而需要是把默认值变动,随后增加的记录的值默认为新设置的默认值!!!!这也是我刚开始没去考虑UPDATE的原因。再加分----恳请老鸟们相助!!!!!!!!!!!!!!!!!!
UP UP
拿分
另外我的程序不是用SQL SERVER,是用PARADOX。呵呵,有劳了!!
但为什么用alter table modify...不行呢?教科书上都是这么写的,可是个标准SQL命令呀!为什么在SQL SERVER 和 DELPHI中用它都出错。