创建表时列默认值怎么引用其他列的值?

TheGodOfGods 2010-11-02 01:23:30
rt,有如下表tb,time1为时间类型,time2为varchar类型,截取time1的日期部分,我想通过在time2的default值里边调用相应处理函数,怎么把time1当参数传入?
if object_id('tb') is not null
drop table tb
create table tb(ID int, time1 datetime not null default (getdate()),
time2 varchar(10) default (dbo.GetShortTime(time1)))

相应函数为
IF OBJECT_ID (N'dbo.GetShortTime', N'FN') IS NOT NULL
DROP FUNCTION dbo.GetShortTime;
GO
create function dbo.GetShortTime(@date datetime)
returns varchar(10)
AS
BEGIN
return CONVERT(varchar(10),getdate(), 120)
END
...全文
254 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
TheGodOfGods 2010-11-02
  • 打赏
  • 举报
回复
正解
coleling 2010-11-02
  • 打赏
  • 举报
回复
--使用计算列,用AS关键字
if object_id('tb') is not null
drop table tb
create table tb(ID int, time1 datetime not null default (getdate()),
time2 AS dbo.GetShortTime(time1))
SQLCenter 2010-11-02
  • 打赏
  • 举报
回复
create table tb(ID int, time1 datetime not null default (getdate()),
time2 as CONVERT(varchar(10),time1, 120)
)

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧