How to define an SQL Server function withing DDT?


Author
Message
Edhy Rijo
E
StrataFrame VIP (3.8K reputation)StrataFrame VIP (3.8K reputation)StrataFrame VIP (3.8K reputation)StrataFrame VIP (3.8K reputation)StrataFrame VIP (3.8K reputation)StrataFrame VIP (3.8K reputation)StrataFrame VIP (3.8K reputation)StrataFrame VIP (3.8K reputation)StrataFrame VIP (3.8K reputation)
Group: StrataFrame Users
Posts: 2.4K, Visits: 23K
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.



Here the code I have in the DDT, also look at the udfSample.png image:



(@FK_Customers INT)

RETURNS varchar(20)



AS

BEGIN

DECLARE @ParkingNumbers varchar(20)

DECLARE @IsInactive BIT



SET @ParkingNumbers = ''

SET @IsInactive = 0



SELECT @ParkingNumbers = @ParkingNumbers + LTRIM(cast(v.ParkingNumber as varchar(3))) + ','

FROM

dbo.Vehicles V

WHERE

(V.FK_Customers = @FK_Customers AND

V.IsInactive = @IsInactive)

ORDER BY

v.ParkingNumber



RETURN @ParkingNumbers

END





Here is the code I use in Manager Studio with not problem:



CREATE FUNCTION dbo.udf_GetParkingNumbers (@FK_Customers INT)

RETURNS varchar(20)



AS

BEGIN

DECLARE @ParkingNumbers varchar(20)

DECLARE @IsInactive BIT



SET @ParkingNumbers = ''

SET @IsInactive = 0



SELECT @ParkingNumbers = @ParkingNumbers + LTRIM(cast(v.ParkingNumber as varchar(3))) + ','

FROM

dbo.Vehicles V

WHERE

(V.FK_Customers = @FK_Customers AND

V.IsInactive = @IsInactive)

ORDER BY

v.ParkingNumber



-- SELECT @ParkingNumbers



RETURN @ParkingNumbers



END

GO





The error I get from DDT when try to deploy the UDF is:



X 11/1/2009 11:09:09 PM-> An error occurred while creating the stored procedure [dbo].[spGetParkingNumbers].

X 11/1/2009 11:09:09 PM-> SqlException

X 11/1/2009 11:09:09 PM-> Incorrect syntax near the keyword 'DECLARE'.

X 11/1/2009 11:09:09 PM-> Incorrect syntax near the keyword 'AS'.

X 11/1/2009 11:09:09 PM-> Must declare the scalar variable "@ParkingNumbers".

X 11/1/2009 11:09:09 PM-> Must declare the scalar variable "@ParkingNumbers".

X 11/1/2009 11:09:09 PM->

X 11/1/2009 11:09:09 PM-> Source : .Net SqlClient Data Provider

X 11/1/2009 11:09:09 PM->

X 11/1/2009 11:09:09 PM-> Stack Trace:

X 11/1/2009 11:09:09 PM-> at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

X 11/1/2009 11:09:09 PM-> at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

X 11/1/2009 11:09:09 PM-> at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

X 11/1/2009 11:09:09 PM-> at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

X 11/1/2009 11:09:09 PM-> at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)

X 11/1/2009 11:09:09 PM-> at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)

X 11/1/2009 11:09:09 PM-> at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()

X 11/1/2009 11:09:09 PM-> at MicroFour.StrataFrame.DBEngine.SQL.DatabaseMigrator.DeploySprocsOfPriority(Database parent, DatabaseInfo dbInfo, Int32 priority)







What am I doing wrong in DDT to get this error, while the same code works just fine in Manager Studio?

Edhy Rijo

Attachments
udfSample.png (204 views, 62.00 KB)
GO

Merge Selected

Merge into selected topic...



Merge into merge target...



Merge into a specific topic ID...





Similar Topics

Reading This Topic

Login

Explore
Messages
Mentions
Search