Ну, мой не все, что более простой, но вот код, который я использую, чтобы разделить разграниченную запятой входную переменную на отдельные значения и поместить ее в табличную переменную. Я уверен, что Вы могли изменить это немного, чтобы разделить на основе пространства и затем сделать основной Запрос Select против той табличной переменной для получения результатов.
-- Create temporary table to parse the list of accounting cycles.
DECLARE @tblAccountingCycles table
(
AccountingCycle varchar(10)
)
DECLARE @vchAccountingCycle varchar(10)
DECLARE @intPosition int
SET @vchAccountingCycleIDs = LTRIM(RTRIM(@vchAccountingCycleIDs)) + ','
SET @intPosition = CHARINDEX(',', @vchAccountingCycleIDs, 1)
IF REPLACE(@vchAccountingCycleIDs, ',', '') <> ''
BEGIN
WHILE @intPosition > 0
BEGIN
SET @vchAccountingCycle = LTRIM(RTRIM(LEFT(@vchAccountingCycleIDs, @intPosition - 1)))
IF @vchAccountingCycle <> ''
BEGIN
INSERT INTO @tblAccountingCycles (AccountingCycle) VALUES (@vchAccountingCycle)
END
SET @vchAccountingCycleIDs = RIGHT(@vchAccountingCycleIDs, LEN(@vchAccountingCycleIDs) - @intPosition)
SET @intPosition = CHARINDEX(',', @vchAccountingCycleIDs, 1)
END
END
понятие является в значительной степени тем же. Еще одна альтернатива должна усилить совместимость.NET в SQL Server сам 2005. Можно по существу записать себе простой метод в.NET, которая разделила бы строку и затем представила бы это как хранимую процедуру / функция.
Я не использовал TeamCity Server, но одно возможное альтернативное решение - чтобы объединить три сценария сборки в один сценарий. И поместите задачи трех отдельных скриптов в отдельные цели в главном файле сборки. Так, вместо трех отдельных сценариев сборки у вас есть один сценарий сборки с тремя целями, а именно deployUI, deployServices, deployBackend. Непроверенный пример ниже:
<?xml version="1.0" encoding="utf-8" ?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="DefaultTarget" ToolsVersion="3.5">
<Target Name="DefaultTarget">
<CallTarget Targets="deployUI" ContinueOnError="false"></CallTarget>
<CallTarget Targets="deployServices" ContinueOnError="false"></CallTarget>
<CallTarget Targets="deployBackend" ContinueOnError="false"></CallTarget>
</Target>
<Target Name="deployUI">
<!-- Put UI deployment tasks here -->
</Target>
<Target Name="deployServices">
<!-- Put Services deployment tasks here -->
</Target>
<Target Name="deployBackend">
<!-- Put Backend deployment tasks here -->
</Target>
</Project>