﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>StrataFrame Forum » StrataFrame Database Deployment Toolkit » Database Deployment Toolkit (How do I?)  » How to define an SQL Server function withing DDT?</title><generator>InstantForum 2017-1 Final</generator><description>StrataFrame Forum</description><link>http://forum.strataframe.net/</link><webMaster>StrataFrame Forum</webMaster><lastBuildDate>Tue, 09 Jun 2026 00:19:09 GMT</lastBuildDate><ttl>20</ttl><item><title>How to define an SQL Server function withing DDT?</title><link>http://forum.strataframe.net/FindPost25095.aspx</link><description>I have a SQL Server function which I have not problem creating it in SQL Server Manager Studio, but when try to create it in the DDT I always get an error when try to deploy the UDF.&lt;br&gt;
&lt;br&gt;
Here the code I have in the DDT, also look at the udfSample.png image:&lt;br&gt;
[codesnippet]&lt;br&gt;
(@FK_Customers INT)&lt;br&gt;
RETURNS varchar(20)&lt;br&gt;
&lt;br&gt;
AS&lt;br&gt;
BEGIN&lt;br&gt;
DECLARE @ParkingNumbers varchar(20)&lt;br&gt;
DECLARE @IsInactive BIT&lt;br&gt;
&lt;br&gt;
SET @ParkingNumbers = ''&lt;br&gt;
SET @IsInactive = 0&lt;br&gt;
&lt;br&gt;
SELECT @ParkingNumbers = @ParkingNumbers + LTRIM(cast(v.ParkingNumber as varchar(3))) + ','&lt;br&gt;
FROM&lt;br&gt;
  dbo.Vehicles V&lt;br&gt;
WHERE&lt;br&gt;
  (V.FK_Customers = @FK_Customers AND&lt;br&gt;
   V.IsInactive = @IsInactive)&lt;br&gt;
ORDER BY&lt;br&gt;
  v.ParkingNumber&lt;br&gt;
&lt;br&gt;
RETURN @ParkingNumbers&lt;br&gt;
END&lt;br&gt;
[/codesnippet]&lt;br&gt;
&lt;br&gt;
Here is the code I use in Manager Studio with not problem:&lt;br&gt;
[codesnippet]&lt;br&gt;
CREATE FUNCTION dbo.udf_GetParkingNumbers (@FK_Customers INT)&lt;br&gt;
RETURNS varchar(20)&lt;br&gt;
&lt;br&gt;
AS&lt;br&gt;
BEGIN&lt;br&gt;
DECLARE @ParkingNumbers varchar(20)&lt;br&gt;
DECLARE @IsInactive BIT&lt;br&gt;
&lt;br&gt;
SET @ParkingNumbers = ''&lt;br&gt;
SET @IsInactive = 0&lt;br&gt;
&lt;br&gt;
SELECT @ParkingNumbers = @ParkingNumbers + LTRIM(cast(v.ParkingNumber as varchar(3))) + ','&lt;br&gt;
FROM&lt;br&gt;
  dbo.Vehicles V&lt;br&gt;
WHERE&lt;br&gt;
  (V.FK_Customers = @FK_Customers AND&lt;br&gt;
   V.IsInactive = @IsInactive)&lt;br&gt;
ORDER BY&lt;br&gt;
  v.ParkingNumber&lt;br&gt;
&lt;br&gt;
-- SELECT @ParkingNumbers&lt;br&gt;
&lt;br&gt;
RETURN @ParkingNumbers&lt;br&gt;
&lt;br&gt;
END&lt;br&gt;
GO&lt;br&gt;
[/codesnippet]&lt;br&gt;
&lt;br&gt;
The error I get from DDT when try to deploy the UDF is:&lt;br&gt;
[codesnippet]&lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt; An error occurred while creating the stored procedure [dbo].[spGetParkingNumbers].&lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt; SqlException        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;   Incorrect syntax near the keyword 'DECLARE'.        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt; Incorrect syntax near the keyword 'AS'.        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt; Must declare the scalar variable "@ParkingNumbers".        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt; Must declare the scalar variable "@ParkingNumbers".        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;         &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt; Source     : .Net SqlClient Data Provider        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;         &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt; Stack Trace:         &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;    at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;    at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;    at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;    at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;    at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;    at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;    at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()        &lt;br&gt;
X 11/1/2009 11:09:09 PM-&gt;    at MicroFour.StrataFrame.DBEngine.SQL.DatabaseMigrator.DeploySprocsOfPriority(Database parent, DatabaseInfo dbInfo, Int32 priority)        &lt;br&gt;
&lt;br&gt;
[/codesnippet]&lt;br&gt;
&lt;br&gt;
What am I doing wrong in DDT to get this error, while the same code works just fine in Manager Studio?</description><pubDate>Tue, 03 Nov 2009 13:58:49 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: How to define an SQL Server function withing DDT?</title><link>http://forum.strataframe.net/FindPost25107.aspx</link><description>Hi Dustin,&lt;br&gt;
&lt;br&gt;
Thanks for the confirmation.  I deleted my code from DDT and copied again and now it works.  I guess some invisible character may have been there before.</description><pubDate>Tue, 03 Nov 2009 13:58:49 GMT</pubDate><dc:creator>Edhy Rijo</dc:creator></item><item><title>RE: How to define an SQL Server function withing DDT?</title><link>http://forum.strataframe.net/FindPost25099.aspx</link><description>This is probably a silly question, but you are creating this as a User Defined Function rather than a Stored Procedure in the DDT, correct?&lt;/P&gt;&lt;P&gt;I just gave this a shot on a test database, and the following worked fine as a UDF deployed to a new database:&lt;/P&gt;&lt;P&gt;[code](@FK_Customers INT)&lt;BR&gt;RETURNS varchar(20)&lt;/P&gt;&lt;P&gt;AS&lt;BR&gt;BEGIN&lt;BR&gt;DECLARE @ParkingNumbers varchar(20)&lt;BR&gt;DECLARE @IsInactive BIT&lt;/P&gt;&lt;P&gt;SET @ParkingNumbers = ''&lt;BR&gt;SET @IsInactive = 0&lt;/P&gt;&lt;P&gt;SELECT @ParkingNumbers = @ParkingNumbers + LTRIM(cast(v.ParkingNumber as varchar(3))) + ','&lt;BR&gt;FROM&lt;BR&gt;dbo.Vehicles V&lt;BR&gt;WHERE&lt;BR&gt;(V.FK_Customers = @FK_Customers AND&lt;BR&gt;V.IsInactive = @IsInactive)&lt;BR&gt;ORDER BY&lt;BR&gt;v.ParkingNumber&lt;/P&gt;&lt;P&gt;-- SELECT @ParkingNumbers&lt;/P&gt;&lt;P&gt;RETURN @ParkingNumbers&lt;/P&gt;&lt;P&gt;END[/code]&lt;/P&gt;&lt;P&gt;That above was in the "Procedure Code" section of hte User-Defined Function Properties, while the "Pre-Create/Environment Code" was left as the default:&lt;/P&gt;&lt;P&gt;[code]set ANSI_NULLS ON&lt;BR&gt;set QUOTED_IDENTIFIER ON&lt;BR&gt;GO[/code]</description><pubDate>Tue, 03 Nov 2009 08:11:06 GMT</pubDate><dc:creator>Dustin Taylor</dc:creator></item></channel></rss>