我了解SQL函数无法更改数据库,因此我需要使用存储过程。
但是我仍然尝试以下方法:
创建表格进行测试。
create table [dbo].[testTable](
[id] [int] identity(1,1) not null,
[value] [nvarchar](max) null
)
创建了一个可以将值插入表格并返回其ID的函数。
create function InsertToDB(
@value nvarchar(MAX)
)
returns nvarchar(1000)
as
begin
declare @cmd nvarchar(max)
set @cmd = 'insert into testTable([value]) output inserted.id values ('+ @value +')'
exec sp_executesql @cmd
--I don't know how to return the id dependent on the value.
return 'sucess'
end
执行功能。
select [dbo].InsertToDB('test123')
错误消息:
只能在函数内部执行函数和某些扩展存储过程。
我想问两个问题: