Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / convert input parameters into CSV string / 8 сообщений из 8, страница 1 из 1
11.11.2002, 20:23:18
    #32066669
Nastasia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
convert input parameters into CSV string
yvashaemie Guru !

est SP :

CREATE PROCEDURE sp_new
(
@S int
,@App int
,@Application int
,@sometest varchar(300)
)
AS
set @S =1 , ,@App =2 , @Application =3 , @sometest ='test'


mne nado polychit" @P1 v vide CSV string
( pitays" zapicat" vce input parametri v variable chtobi potom
@P1 insert v drygoi table ) .
nyshno tak : 1,2,3,test

pishy :
declare @P varchar(800)
select @P1 = @SystemUserID+','+@App+','+@Application+','+@sometest

eto ne proxodit :(

pomogite pls !!!
...
Рейтинг: 0 / 0
11.11.2002, 20:48:34
    #32066673
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
convert input parameters into CSV string
1. Командой set можно инициализировать только одну переменную

set @S =1
set @App =2
set @Application =3
set @sometest ='test'

2. В случае неявное преобразование типов сервер всегда перобразует типы в в соответсвии с их страшинством - из низших в высшие.
Поэтому иногда лучше явно указать преобразование одного типа в другой.

declare @P varchar(800)
select @P = ','+CAST(@App AS varchar(20)) +','+ CAST(@Application AS varchar(20)) +','+@sometest


3. Т.к. про переменную @SystemUserID из вашего скрипта ничего неизвестно, то прокомментировать не могу
...
Рейтинг: 0 / 0
11.11.2002, 20:59:09
    #32066675
Nastasia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
convert input parameters into CSV string
spacibo Glory !

set ia napicala dlia primera :)


ia pitays" cdelat" Audit dlia SP's , chtobi vce imena SP
i vce parametri ( input ) zapicivalis" v audit table

poxoshaia zadacha na vashy :)
...
Рейтинг: 0 / 0
11.11.2002, 21:44:45
    #32066689
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
convert input parameters into CSV string
Дело хорошее.
Могу дать совет - подумайте над иерархией ваших процедур.
Потому что одним из следующих вопросов, после того "кто и как запускал процедуру" будет вроде такого "сколько у нас запускается процедур поиска/обновления данных в промежуток времени" с различными дальнейшими вариантами.
Поэтому лучше сразу определить процедуру в какую-то "весовую" группу(ы), чтобы в дальнейшем проводить более всесторонние аудит.
...
Рейтинг: 0 / 0
11.11.2002, 23:01:03
    #32066695
Nastasia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
convert input parameters into CSV string
chtobi ne perepicivat" vce po novoi dlia kashdoi SP
napicala UDF :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
CREATE FUNCTION      fn_get_parameters_list_1
(   @SPName varchar( 300 )  )

RETURNS      varchar( 8000 )
as 
begin 

declare @a varchar( 40 )
declare @P1 varchar( 4000 )
declare cur cursor for 

select parameter_name 
 ----, data_type, character_maximum_length
 
from INFORMATION_SCHEMA.PARAMETERS   where specific_name =  @SPName
open cur 
fetch next from cur into @a
set @P1=  cast(@a as varchar( 20 )) 
while @@fetch_status= 0 
begin 
fetch next from cur into @a
set @P1= @P1+','+ cast(@a as varchar( 20 )) 
end 

close cur
deallocate cur
 
return @P1

END



v SP vizivay :

Код: plaintext
1.
select    @P1 = dbo.create_param_list (@CallingProc)
print @P1

ona mne daet list :

@a , @b , @c etd

a mne nado ne imena peremennix a ix values


chto delay ne tak ?
...
Рейтинг: 0 / 0
12.11.2002, 10:06:15
    #32066765
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
convert input parameters into CSV string
UDF работает совершенно правильно. Ведь в переменную @a заносится имя параметра, а не его значение. Для вычисления значения переменных нужно использовать динамический запрос, НО, т.к. все пользовательские переменные в T-SQL - локальные, т.е. видны только в том batch-е/процедуре, где они были объявлены. Единственная возможность "увидеть" их в другом batch-е/процедуре - это передать туда их значения.

Конечно можно придумать что-то с использованием sp_executesql, но мне кажется, что получится слишком грамоздкий код
...
Рейтинг: 0 / 0
12.11.2002, 17:25:26
    #32067073
Nastasia
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
convert input parameters into CSV string
polychaetcia chto nado v kashdyu SP
vstavliat" kycok dlia inserta STRING parameters v audit table
prichem v zavisimosti ot type variable ( int or varchar) nado ispolzovat" libo 'cast' OR 'quotename '

voobshem polychat" chto-to podobnoe :
dlia SP :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE  PROCEDURE test
(
	 @SystemUserID int
	,@ApplicationID int 
	,@ApplicationItemID int
	,@Description nvarchar( 1024 )
             ,@actionURL  nvarchar( 1024 )
	,@SingleInstance bit
	,@CustomerID int 
) 
STring bydet :

Код: plaintext
select    @P2  = cast(@SystemUserID as varchar( 20 )) + ',' + cast(@ApplicationID  AS varchar( 20 )) + ',' +cast (@ApplicationItemID AS varchar( 20 )) +',' +quotename(@Description, '''') +',' +quotename(@actionURL, '''')+','+cast(@SingleInstance as varchar( 20 ))+','+cast(@CustomerID as varchar( 20 )) ..... etd



shalko , xotelos" bi napisat" UDF i prosto ee vizivat" v kashdoi SP

y menia 120 SP znachit poka ia dlia kashdoi napishy etot kysok
proidet nemalo vremeni :(:(
...
Рейтинг: 0 / 0
12.11.2002, 17:42:19
    #32067088
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
convert input parameters into CSV string
напиши sp которая пробежит по всем процедурам и пересоздаст их с твоей строкой после as.....
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / convert input parameters into CSV string / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]