SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ntm_test_move_node]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[ntm_test_move_node] GO -- converts from node_name to node_id. CREATE PROCEDURE ntm_test_move_node @node_table_name varchar(255) = 'ntm_nodes' ,@TreeID uniqueidentifier ,@move_node_name varchar(255) ,@buddy_node_name varchar(255) ,@move_type varchar(255) = "AS_SIBLING" ,@str_debug varchar(255) = "NODEBUG" as declare @sql_str nvarchar(1000) DECLARE @MoveID uniqueidentifier DECLARE @BuddyID uniqueidentifier begin set @sql_str = N' select @MoveID = InternalNodeID from ' + @node_table_name + N' where TreeID = ''' + convert(nvarchar(50), @TreeID) + N''' and NodeName = ''' + @move_node_name + N'''' execute sp_executesql @sql_str, N'@MoveID uniqueidentifier out', @MoveID out set @sql_str = N' select @BuddyID = InternalNodeID from ' + @node_table_name + N' where TreeID = ''' + convert(nvarchar(50), @TreeID) + N''' and NodeName = ''' + @buddy_node_name + N'''' execute sp_executesql @sql_str, N'@BuddyID uniqueidentifier out', @BuddyID out exec ntm_move_node @node_table_name=@node_table_name, @TreeID=@TreeID, @MoveID=@MoveID, @BuddyID=@BuddyID, @move_type=@move_type, @str_debug=@str_debug /* return the success status code */ return(1) end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO