sql server 自定义函数不支持动态sql怎么理解呢?

sql server 自定义函数不支持动态sql怎么理解呢


拉丁的传说
浏览 1233回答 2
2回答

慕勒3428872

因为自定义函数是经过建立的时候是编译的,所以像getdate()这些不确定因素的值,是随时改变的,所以不允许推荐:将类似getdate()之类的可变的因素使用参数带入进函数执行的时候,再使用getdate(),如:select dbo.MyFunction(getdate()) from 表举个例子:建立自定义函数,如果今天是5号,字段1就等于字段2,否则还等于字段1以下的写法是错误的:create function MyFunction(@字段1 int ,@字段2 int)returns intasif day(getdate())=5return @字段2else return @字段1这样写才是正确的:create function MyFunction(@字段1 int ,@字段2 int,@date datetime)returns intasif day(@date)=5return @字段2else return @字段1调用时:select 字段1,字段2,dbo.MyFunction(字段1,字段2,getdate()) from表

慕村225694

SqlServer的自定义函数不能执行insert、更新操作;不能使用动态sql。可以考虑存储过程。
打开App,查看更多内容
随时随地看视频慕课网APP