一段事务的存储过程,执行出错,请高手进来帮忙解决一下

qq175691524 2010-06-08 12:41:06


ALTER PROC Export_Merge_MaterialW
(
@ware_subjectid NVARCHAR(max), --企业商品的id集合,逗号隔开
@err NVARCHAR(100) OUTPUT --出错返回的数据
)
AS
DECLARE @attr INT
SELECT @attr=0


/*本段代码做程序处理 循环@ware_subjectid的每条记录,如果v_no=0或null则进行更新序号操作*/
--复制字符串1份 一份保存@ware_subjectidTemp,另一份原来的@ware_subjectid--
DECLARE @ware_subjectidTemp NVARCHAR(max)
--分隔符--
DECLARE @splitchar CHAR(1)
--分隔符位置变量--
DECLARE @Index INT --分隔符
--分隔开的每个字符--
DECLARE @Temp VARCHAR(10)
--企业商品表的v_no最大值
DECLARE @MaxID BIGINT
--循环的索引值,递增--
DECLARE @Row_Index INT
--企业商品的id集合--
SELECT @ware_subjectidTemp = @ware_subjectid
--企业商品的g_no,用于判断是否已经做过企业物料备案--
DECLARE @g_no BIGINT
--企业商品表的voucherid(报关商品ID),没有值先做归并关系
DECLARE @voucherid BIGINT
DECLARE @v_no BIGINT
SELECT @Row_Index = 0
SELECT @splitchar=','
SELECT @Index = CHARINDEX(@splitchar, @ware_subjectid,1)
SELECT @MaxID = MAX(v_no)+1 FROM dbo.ware_subject WHERE attr=@attr
IF @MaxID IS NULL
SET @MaxID = 1

Begin TRANSACTION
while(@Index>0)
begin
select @Temp= substring(@ware_subjectid, 1, @Index -1) --存储逗号隔开的每个值
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@Temp AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
ROLLBACK TRANSACTION
BREAK
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
ROLLBACK TRANSACTION
BREAK
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@Temp AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
--删除已处理字符串,重新转换位置
set @ware_subjectid = substring(@ware_subjectid, @Index+1, len(@ware_subjectid)-@Index)
set @Index = charindex(@splitchar, @ware_subjectid,1)

end
if(len(@ware_subjectid)>0) --逗号的最后一个值
BEGIN
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@voucherid AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
ROLLBACK;
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
ROLLBACK;
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@voucherid AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
END
COMMIT




执行存储过程报错:ROLLBACK TRANSACTION 请求没有对应的 BEGIN TRANSACTION。

我不理解我这样写有什么问题。希望高手帮我指点下错误.
...全文
110 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq175691524 2010-06-08
  • 打赏
  • 举报
回复
用了7#的代码试了一下,SQL2005的信息

============================
警告: 聚合或其他 SET 操作消除了空值。
消息 50000,级别 16,状态 1,过程 Export_Merge_MaterialW,第 113 行
您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案
============================
htl258_Tony 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 qq175691524 的回复:]
错误信息:警告: 聚合或其他 SET 操作消除了空值。
[/Quote]
7#或许是你要的,试试
qq175691524 2010-06-08
  • 打赏
  • 举报
回复
错误信息:警告: 聚合或其他 SET 操作消除了空值。
qq175691524 2010-06-08
  • 打赏
  • 举报
回复
加了return没那么错了,可是出了另一个问题:


ALTER PROC Export_Merge_MaterialW
(
@ware_subjectid NVARCHAR(max), --企业商品的id集合
@err NVARCHAR(100) OUTPUT --出错返回的数据
)
AS
DECLARE @attr INT
SELECT @attr=0


/*本段代码做程序处理 循环@ware_subjectid的每条记录,如果v_no=0或null则进行更新序号操作*/
--复制字符串1份 一份保存@ware_subjectidTemp,另一份原来的@ware_subjectid--
DECLARE @ware_subjectidTemp NVARCHAR(max)
--分隔符--
DECLARE @splitchar CHAR(1)
--分隔符位置变量--
DECLARE @Index INT --分隔符
--分隔开的每个字符--
DECLARE @Temp VARCHAR(10)
--企业商品表的v_no最大值
DECLARE @MaxID BIGINT
--循环的索引值,递增--
DECLARE @Row_Index INT
--企业商品的id集合--
SELECT @ware_subjectidTemp = @ware_subjectid
--企业商品的g_no,用于判断是否已经做过企业物料备案--
DECLARE @g_no BIGINT
--企业商品表的voucherid(报关商品ID),没有值先做归并关系
DECLARE @voucherid BIGINT
DECLARE @v_no BIGINT
SELECT @Row_Index = 0
SELECT @splitchar=','
SELECT @Index = CHARINDEX(@splitchar, @ware_subjectid,1)
SELECT @MaxID = MAX(v_no)+1 FROM dbo.ware_subject WHERE attr=@attr
IF @MaxID IS NULL
SET @MaxID = 1

Begin TRANSACTION
while(@Index>0)
begin
select @Temp= substring(@ware_subjectid, 1, @Index -1) --存储逗号隔开的每个值
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@Temp AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SET @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
ROLLBACK TRANSACTION
return
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SET @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
ROLLBACK TRANSACTION
return
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@Temp AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
--删除已处理字符串,重新转换位置
set @ware_subjectid = substring(@ware_subjectid, @Index+1, len(@ware_subjectid)-@Index)
set @Index = charindex(@splitchar, @ware_subjectid,1)

end
if(len(@ware_subjectid)>0) --逗号的最后一个值
BEGIN
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@voucherid AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
ROLLBACK TRANSACTION
return
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
ROLLBACK TRANSACTION
return
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@voucherid AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
END


COMMIT

Garnett_KG 2010-06-08
  • 打赏
  • 举报
回复
ALTER PROC Export_Merge_MaterialW
(
@ware_subjectid NVARCHAR(max), --企业商品的id集合,逗号隔开
@err NVARCHAR(100) OUTPUT --出错返回的数据
)
AS
DECLARE @attr INT
SELECT @attr=0


/*本段代码做程序处理 循环@ware_subjectid的每条记录,如果v_no=0或null则进行更新序号操作*/
--复制字符串1份 一份保存@ware_subjectidTemp,另一份原来的@ware_subjectid--
DECLARE @ware_subjectidTemp NVARCHAR(max)
--分隔符--
DECLARE @splitchar CHAR(1)
--分隔符位置变量--
DECLARE @Index INT --分隔符
--分隔开的每个字符--
DECLARE @Temp VARCHAR(10)
--企业商品表的v_no最大值
DECLARE @MaxID BIGINT
--循环的索引值,递增--
DECLARE @Row_Index INT
--企业商品的id集合--
SELECT @ware_subjectidTemp = @ware_subjectid
--企业商品的g_no,用于判断是否已经做过企业物料备案--
DECLARE @g_no BIGINT
--企业商品表的voucherid(报关商品ID),没有值先做归并关系
DECLARE @voucherid BIGINT
DECLARE @v_no BIGINT
SELECT @Row_Index = 0
SELECT @splitchar=','
SELECT @Index = CHARINDEX(@splitchar, @ware_subjectid,1)
SELECT @MaxID = MAX(v_no)+1 FROM dbo.ware_subject WHERE attr=@attr
IF @MaxID IS NULL
SET @MaxID = 1
BEGIN TRY
Begin TRANSACTION
while(@Index>0)
begin
select @Temp= substring(@ware_subjectid, 1, @Index -1) --存储逗号隔开的每个值
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@Temp AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
RAISERROR (@err,16,1)
BREAK
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
RAISERROR (@err,16,1)
BREAK
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@Temp AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
--删除已处理字符串,重新转换位置
set @ware_subjectid = substring(@ware_subjectid, @Index+1, len(@ware_subjectid)-@Index)
set @Index = charindex(@splitchar, @ware_subjectid,1)

end
if(len(@ware_subjectid)>0) --逗号的最后一个值
BEGIN
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@voucherid AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
RAISERROR (@err,16,1)
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
RAISERROR (@err,16,1)
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@voucherid AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
END
COMMIT
END TRY
BEGIN CATCH
IF XACT_STATE()<>0
BEGIN
ROLLBACK TRAN
END
DECLARE @ErrorMessage_END NVARCHAR(4000);
DECLARE @ErrorSeverity_END INT;
DECLARE @ErrorState_END INT;

SELECT @ErrorMessage_END = ERROR_MESSAGE(),
@ErrorSeverity_END = ERROR_SEVERITY(),
@ErrorState_END = ERROR_STATE();


RAISERROR (@ErrorMessage_END, -- Message text.
@ErrorSeverity_END, -- Severity.
@ErrorState_END -- State.
);
END CATCH
永生天地 2010-06-08
  • 打赏
  • 举报
回复
看看对吗

ALTER PROC Export_Merge_MaterialW
(
@ware_subjectid NVARCHAR(max), --企业商品的id集合,逗号隔开
@err NVARCHAR(100) OUTPUT --出错返回的数据
)
AS
DECLARE @attr INT
SELECT @attr=0


/*本段代码做程序处理 循环@ware_subjectid的每条记录,如果v_no=0或null则进行更新序号操作*/
--复制字符串1份 一份保存@ware_subjectidTemp,另一份原来的@ware_subjectid--
DECLARE @ware_subjectidTemp NVARCHAR(max)
--分隔符--
DECLARE @splitchar CHAR(1)
--分隔符位置变量--
DECLARE @Index INT --分隔符
--分隔开的每个字符--
DECLARE @Temp VARCHAR(10)
--企业商品表的v_no最大值
DECLARE @MaxID BIGINT
--循环的索引值,递增--
DECLARE @Row_Index INT
--企业商品的id集合--
SELECT @ware_subjectidTemp = @ware_subjectid
--企业商品的g_no,用于判断是否已经做过企业物料备案--
DECLARE @g_no BIGINT
--企业商品表的voucherid(报关商品ID),没有值先做归并关系
DECLARE @voucherid BIGINT
DECLARE @v_no BIGINT
SELECT @Row_Index = 0
SELECT @splitchar=','
SELECT @Index = CHARINDEX(@splitchar, @ware_subjectid,1)
SELECT @MaxID = MAX(v_no)+1 FROM dbo.ware_subject WHERE attr=@attr
IF @MaxID IS NULL
SET @MaxID = 1

Begin TRANSACTION
while(@Index>0)
begin
select @Temp= substring(@ware_subjectid, 1, @Index -1) --存储逗号隔开的每个值
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@Temp AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
ROLLBACK TRANSACTION
return
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
ROLLBACK TRANSACTION
return
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@Temp AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
--删除已处理字符串,重新转换位置
set @ware_subjectid = substring(@ware_subjectid, @Index+1, len(@ware_subjectid)-@Index)
set @Index = charindex(@splitchar, @ware_subjectid,1)

end
if(len(@ware_subjectid)>0) --逗号的最后一个值
BEGIN
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@voucherid AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
ROLLBACK;
return;
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
ROLLBACK;
return;
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@voucherid AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
END
COMMIT


htl258_Tony 2010-06-08
  • 打赏
  • 举报
回复
ALTER PROC Export_Merge_MaterialW
(
@ware_subjectid NVARCHAR(max), --企业商品的id集合,逗号隔开
@err NVARCHAR(100) OUTPUT --出错返回的数据
)
AS
DECLARE @attr INT
SELECT @attr=0


/*本段代码做程序处理 循环@ware_subjectid的每条记录,如果v_no=0或null则进行更新序号操作*/
--复制字符串1份 一份保存@ware_subjectidTemp,另一份原来的@ware_subjectid--
DECLARE @ware_subjectidTemp NVARCHAR(max)
--分隔符--
DECLARE @splitchar CHAR(1)
--分隔符位置变量--
DECLARE @Index INT --分隔符
--分隔开的每个字符--
DECLARE @Temp VARCHAR(10)
--企业商品表的v_no最大值
DECLARE @MaxID BIGINT
--循环的索引值,递增--
DECLARE @Row_Index INT
--企业商品的id集合--
SELECT @ware_subjectidTemp = @ware_subjectid
--企业商品的g_no,用于判断是否已经做过企业物料备案--
DECLARE @g_no BIGINT
--企业商品表的voucherid(报关商品ID),没有值先做归并关系
DECLARE @voucherid BIGINT
DECLARE @v_no BIGINT
SELECT @Row_Index = 0
SELECT @splitchar=','
SELECT @Index = CHARINDEX(@splitchar, @ware_subjectid,1)
SELECT @MaxID = MAX(v_no)+1 FROM dbo.ware_subject WHERE attr=@attr
IF @MaxID IS NULL
SET @MaxID = 1

Begin TRANSACTION
while(@Index>0)
begin
select @Temp= substring(@ware_subjectid, 1, @Index -1) --存储逗号隔开的每个值
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@Temp AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
RETURN
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
RETURN
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@Temp AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
--删除已处理字符串,重新转换位置
set @ware_subjectid = substring(@ware_subjectid, @Index+1, len(@ware_subjectid)-@Index)
set @Index = charindex(@splitchar, @ware_subjectid,1)

end
if(len(@ware_subjectid)>0) --逗号的最后一个值
BEGIN
/*开始逻辑*/
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE id=CAST(@voucherid AS BIGINT)
--没有做过企业物料备案的不能继续
IF @g_no IS NULL OR @g_no <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业物料备案,请先做企业物料备案在做归并关系备案'
RETURN;
END
--没有做过归并关系的不能继续
IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SELECT @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
RETURN;
END
--开始进行v_no的修改
IF @v_no IS NULL OR @v_no = 0 --没有序号的更新序号
BEGIN
UPDATE dbo.ware_subject SET v_no = @MaxID + @Row_Index WHERE id = CAST(@voucherid AS BIGINT)
SET @Row_Index = @Row_Index +1
END
/*结束逻辑*/
END
COMMIT
nianran520 2010-06-08
  • 打赏
  • 举报
回复
ROLLBACK TRANSACTION 
后加上 return 试试
qq175691524 2010-06-08
  • 打赏
  • 举报
回复
大概是事务的写法出错.
Begin TRANSACTION

while ..
begin
ROLLBACK TRANSACTION
end

if
begin
ROLLBACK TRANSACTION
end
COMMIT


大概是我写法有点问题.大家帮忙看下
dawugui 2010-06-08
  • 打赏
  • 举报
回复
....???
GOODlivelife 2010-06-08
  • 打赏
  • 举报
回复
好长,帮顶
qq175691524 2010-06-08
  • 打赏
  • 举报
回复
谢谢大家
qq175691524 2010-06-08
  • 打赏
  • 举报
回复
测试了很久,忽然才知道真正的问题所在。rollback不应该在循环去做。循环里最好只设置一个标志值,在循环完成后在判断标志,这时候在去rollback,这样就没问题了。
永生天地 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 qq175691524 的回复:]
找到问题的关键了。
while循环的select语句有问题
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE ..
加了 isnull(voucherid,0)就ok了
我的if判断有问题 。。
谢谢大家~~~
[/Quote]

SELECT @MaxID = MAX(v_no)+1 FROM dbo.ware_subject WHERE attr=@attr
这句应该有可能提示下面的警告
警告: 聚合或其他 SET 操作消除了空值。
qq175691524 2010-06-08
  • 打赏
  • 举报
回复
找到问题的关键了。
while循环的select语句有问题
SELECT @voucherid = voucherid, @g_no = g_no,@v_no = v_no FROM dbo.ware_subject WHERE ..
加了 isnull(voucherid,0)就ok了
我的if判断有问题 。。
谢谢大家~~~
永生天地 2010-06-08
  • 打赏
  • 举报
回复
已经用了output ,怎么还写raiserror
qq175691524 2010-06-08
  • 打赏
  • 举报
回复
我用了注释调试,发现while循环这段代码才会这样


IF @voucherid IS NULL OR @voucherid <=0
BEGIN
SET @err ='您选中的商品至少有一项没有做过企业商品归并,请先做归并关系'
ROLLBACK TRANSACTION
return
END

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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