在数据库中动态创建函数

时间:2011-09-29 06:14:11

标签: sql sql-server tsql sql-server-2008

我需要在数据库中动态创建一个函数。我的程序接受数据库名称作为参数,然后我需要在该DATABASE中动态创建此函数。 但我无法执行此..请帮助我。提前预订

Create procedure [dbo].[Sp_Insertfun]
(
@OrgName nvarchar(100)
)
AS BEGIN
Declare @orgdataInsertString nvarchar(max);

set @orgdataInsertString='Use '+@OrgName+'' ;

set @orgdataInsertString=@orgdataInsertString+char(13)+char(10)+'GO'+'
Create function dbo.[fn_GroupDisplay](@GroupID int)

RETURNS @Group TABLE
(

GrpPath nvarchar(max)

)
as 
begin
declare @ParentId1 int
declare @ParentId2 varchar(50)
declare @ParentId3 varchar(50) 
declare @parentId4 varchar(50)
declare @Text nvarchar(max)

set @ParentId3=''''
begin
set @ParentId1=(select ParentID from GroupDetails where GroupID=@GroupID)
set @ParentId4=(select GroupName from GroupDetails where GroupID=@GroupID)

while(@ParentId1>0)
begin
set @parentId2=(select GroupName from GroupDetails where GroupID=@ParentId1 )
set @ParentId3 =  @ParentId2+ ''\'' + coalesce(@ParentId3,''')
set @ParentId1=(select  ParentID from GroupDetails where GroupID=@ParentId1 )
end
set @Text=@ParentId3+@ParentId4
INSERT INTO @Group VALUES (@Text)
end
RETURN
end'

execute sp_executesql @query=@orgdataInsertString
print @orgdataInsertString
end

1 个答案:

答案 0 :(得分:1)