- 介质名称
hgdbv9(sqlserver-1-1)-232-build2511211459-0bf3082-linux.x86_64.bin
- 问题现象
hgdbv9的SQLserver版本,建表时字段是虚拟列,且此列调用了函数,创建时报错:SQL 错误 [33557097] [S0001]: 生成表达式不是不可变的。
(1).函数
CREATE FUNCTION [dbo].[CalculateAge] (@Birthday DATETIME) RETURNS INT AS |
(2).表结构和数据
CREATE TABLE [dbo].[TestVc]( |
(3).SQLServer创建后查询结果
select * from [dbo].[TestVc]; |

(4).hgdb无法创建表
建表报错,如图所示

- 解决方案
(1).修改函数为immutable
exec sp_babelfish_volatility 'CalculateAge','immutable'; |

(2).再次创建表并插入数据


(3).hgdb查询结果
select * from [dbo].[TestVc]; |
