gpt4 book ai didi

sql - 批量创建多个 UDF - SQL Server

转载 作者:行者123 更新时间:2023-12-05 00:06:38 24 4
gpt4 key购买 nike

我在为 SQL Server 2008 R2 提出这个问题

我想知道是否有一种方法可以在单个批处理语句中创建多个函数。

我以下面的代码为例;假设我想取一个字符串并按字母顺序重新排列它的字母。所以,'Hello' 会变成 'eHllo'

CREATE FUNCTION char_split (@string varchar(max))
RETURNS @characters TABLE
(
chars varchar(2)
)
AS
BEGIN

DECLARE @length int,
@K int

SET @length = len(@string)
SET @K = 1

WHILE @K < @length+1
BEGIN
INSERT INTO @characters
SELECT SUBSTRING(@string,@K,1)
SET @K = @K+1
END

RETURN
END


CREATE FUNCTION rearrange (@string varchar(max))
RETURNS varchar(max)
AS
BEGIN

DECLARE @SplitData TABLE (
chars varchar(2)
)

INSERT INTO @SplitData SELECT * FROM char_split(@string)

DECLARE @Output varchar(max)

SELECT @Output = coalesce(@Output,' ') + cast(chars as varchar(10))
from @SplitData
order by chars asc

RETURN @Output
END

declare @string varchar(max)
set @string = 'Hello'
select dbo.rearrange(@string)

当我尝试运行此代码时,我收到此错误:

 'CREATE FUNCTION' must be the first statement in a query batch.

我尝试将每个函数都包含在 BEGIN END block 中,但没有成功。有什么建议吗?

最佳答案

只需在 UDF 的定义之间使用 GO 语句

关于sql - 批量创建多个 UDF - SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27259777/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com