Я создал сохраненный процесс, чтобы пользователь мог выбрать несколько значений, разделенных запятыми, в один параметр.
Здесь я получаю некоторую проблему при циклировании этих значений.вот код
Alter PROCEDURE [dbo].[Testing] @Databases varchar(4096)
AS Begin
SET NOCOUNT ON;
Declare @cnt varchar(500)
Declare @sql varchar(Max) = ''
Declare @DB varchar(50)
;WITH MyCTE
AS (SELECT * FROM [dbo].[fnSplitStringList] (@Databases))
select * into #temp from MyCTE
DECLARE tenant_cursor CURSOR FOR
select * from #temp
OPEN tenant_cursor;
FETCH NEXT FROM tenant_cursor INTO @cnt;
WHILE @@FETCH_STATUS = 0
BEGIN
select @DB = dbname from CountryLookup where dbName = @cnt
if @sql = ''
Begin
SET @sql = 'select C1, C2, C3
from ' + @DB + '.dbo.T1
inner join DB1.T2 on T1.C4 = T2.C4
'
End
Else
Begin
SET @sql = 'select C1, C2, C3
from ' + @DB + '.dbo.T1
inner join DB1.T2 on T1.C4 = T2.C4
'
End
FETCH NEXT FROM tenant_cursor INTO @cnt;
END
CLOSE tenant_cursor;
DEALLOCATE tenant_cursor;
Drop table #temp
exec (@sql)
END
Теперь, когда я выполняю свой процесс, как exec [dbo]. [Тестирование] 'США, Япония, Франция'
Это только дает мне записи для Франции.
Может ли кто-нибудь помочь мне, где я не прав ??