Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как из строки убрать всё кроме цифр  [new]
igor888
Guest
Добрый день.

Тема вроде как заезжена, но понять что и как делать не могу, касаемо моей задачи.

Нужно убрать из переменной всё кроме цифр, например:

DECLARE @S NVARCHAR(50)
SET @S = '(922)789-10-15'

-- как убрать из "@S" всё кроме цифр. Момент такой, не факт, что в переменной будут только символы "(", ")" или "-"
15 дек 14, 10:54    [16997454]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20607
Напиши свою функцию очистки, которая принимает твою строку и посимвольно её перебирает. Если цифирь - добавляет к выходной переменной, иначе игнорирует.
15 дек 14, 11:02    [16997519]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
Можно и нужно написать сборку на CLR с применением регулярных выражений.
Вообще пора бы уже комплектовать сервер такой штукой.
15 дек 14, 11:03    [16997532]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
igor8
легче оставить все цыфры ,их список меньше :)
15 дек 14, 11:27    [16997706]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
LexusR
Member

Откуда: Novosibirsk
Сообщений: 1873
DECLARE @S NVARCHAR(50)
SET @S = '(922)789-10-15'
SELECT @S = REPLACE(@S,ISNULL(CHAR(number),''),'')
FROM master.dbo.spt_values 
where type='P' and number<48 or number>57
select @S
15 дек 14, 12:15    [16998087]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Владислав Колосов
Можно и нужно написать сборку на CLR с применением регулярных выражений.
Вообще пора бы уже комплектовать сервер такой штукой.
Без обид. Но я считаю, что это мания какая-то.

declare @t1 table (nk int,phone varchar(100))

insert @t1(nk,phone) select 1,'вапа123А45-67В890вап' union ALL select 2, 'вапа64576-+GGG9887sfgsd'
select * from @t1

select t1.nk,
(
  select substring(t.phone,v.number,1)
  from @t1 t join master.dbo.spt_values v
  on v.type = 'P' and v.number between 1 and len(t.phone) and substring(t.phone,v.number,1) not like '[0-9]'
  where t.nk = t1.nk
  for xml path(''),type
 ).value('.','varchar(100)') phone
from @t1 t1;

выборка чисел из строки
15 дек 14, 13:42    [16998638]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
iap
Владислав Колосов
Можно и нужно написать сборку на CLR с применением регулярных выражений.
Вообще пора бы уже комплектовать сервер такой штукой.
Без обид. Но я считаю, что это мания какая-то.

declare @t1 table (nk int,phone varchar(100))

insert @t1(nk,phone) select 1,'вапа123А45-67В890вап' union ALL select 2, 'вапа64576-+GGG9887sfgsd'
select * from @t1

select t1.nk,
(
  select substring(t.phone,v.number,1)
  from @t1 t join master.dbo.spt_values v
  on v.type = 'P' and v.number between 1 and len(t.phone) and substring(t.phone,v.number,1) not like '[0-9]'
  where t.nk = t1.nk
  for xml path(''),type
 ).value('.','varchar(100)') phone
from @t1 t1;


выборка чисел из строки
Чего-то я решил, что нужно всё, но только не цифры.
Прочитал название темы ещё раз - Ваша задача в точности как по ссылке, которую я привёл.
То есть
declare @t1 table (nk int,phone varchar(100))

insert @t1(nk,phone) select 1,'вапа123А45-67В890вап' union ALL select 2, 'вапа64576-+GGG9887sfgsd'
select * from @t1

select t1.nk,
(
  select substring(t.phone,v.number,1)
  from @t1 t join master.dbo.spt_values v
  on v.type = 'P' and v.number between 1 and len(t.phone) and substring(t.phone,v.number,1) like '[0-9]'
  where t.nk = t1.nk
  for xml path(''),type
 ) phone
from @t1 t1;
15 дек 14, 13:48    [16998693]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
iap
Без обид. Но я считаю, что это мания какая-то.
Имхо мания - не пользоваться более простым и производительным инструментом только потому, что он CLR-based. Без обид.
+ Тест
use tempdb;
go

create table dbo.t (id int identity primary key, s varchar(100));
go

insert into dbo.t
select top (100000)
 'вапа123А45-67В890вап' + cast(row_number() over (order by rand()) as varchar(10))
from
 master.dbo.spt_values a cross join
 master.dbo.spt_values b;
go

declare @s varchar(100);

set statistics time on;

/*"Правильная" работа с XML*/
select
 @s = a.s
from
 dbo.t t cross apply
 (
  select (
   select substring(t.s, v.number, 1)
   from master.dbo.spt_values v
   where v.type = 'P' and v.number between 1 and len(t.s) and substring(t.s, v.number, 1) like '[0-9]'
   for xml path(''), type).value('.', 'varchar(100)')
 ) a(s)
option (maxdop 1);

/*"Неправильная" работа с XML, но допустимая для данной задачи*/
select
 @s = a.s
from
 dbo.t t cross apply
 (
  select (
   select substring(t.s, v.number, 1)
   from master.dbo.spt_values v
   where v.type = 'P' and v.number between 1 and len(t.s) and substring(t.s, v.number, 1) like '[0-9]'
   for xml path(''))
 ) a(s)
option (maxdop 1);

/*SQLCLR*/
select
 @s = [SQLCLR-обертка над Regex.Replace](t.s, '[^0-9]', '')
from
 dbo.t t
option (maxdop 1);

set statistics time off;
go

drop table dbo.t;
go
Результат
 Время работы SQL Server:
Время ЦП = 5538 мс, затраченное время = 6213 мс.

Время работы SQL Server:
Время ЦП = 3463 мс, затраченное время = 3513 мс.

Время работы SQL Server:
Время ЦП = 2169 мс, затраченное время = 2217 мс.
15 дек 14, 15:11    [16999271]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
invm
iap
Без обид. Но я считаю, что это мания какая-то.
Имхо мания - не пользоваться более простым и производительным инструментом только потому, что он CLR-based. Без обид.
+ Тест
use tempdb;
go

create table dbo.t (id int identity primary key, s varchar(100));
go

insert into dbo.t
select top (100000)
 'вапа123А45-67В890вап' + cast(row_number() over (order by rand()) as varchar(10))
from
 master.dbo.spt_values a cross join
 master.dbo.spt_values b;
go

declare @s varchar(100);

set statistics time on;

/*"Правильная" работа с XML*/
select
 @s = a.s
from
 dbo.t t cross apply
 (
  select (
   select substring(t.s, v.number, 1)
   from master.dbo.spt_values v
   where v.type = 'P' and v.number between 1 and len(t.s) and substring(t.s, v.number, 1) like '[0-9]'
   for xml path(''), type).value('.', 'varchar(100)')
 ) a(s)
option (maxdop 1);

/*"Неправильная" работа с XML, но допустимая для данной задачи*/
select
 @s = a.s
from
 dbo.t t cross apply
 (
  select (
   select substring(t.s, v.number, 1)
   from master.dbo.spt_values v
   where v.type = 'P' and v.number between 1 and len(t.s) and substring(t.s, v.number, 1) like '[0-9]'
   for xml path(''))
 ) a(s)
option (maxdop 1);

/*SQLCLR*/
select
 @s = [SQLCLR-обертка над Regex.Replace](t.s, '[^0-9]', '')
from
 dbo.t t
option (maxdop 1);

set statistics time off;
go

drop table dbo.t;
go

Результат
 Время работы SQL Server:
Время ЦП = 5538 мс, затраченное время = 6213 мс.

Время работы SQL Server:
Время ЦП = 3463 мс, затраченное время = 3513 мс.

Время работы SQL Server:
Время ЦП = 2169 мс, затраченное время = 2217 мс.
То я здесь вижу маниакальную приверженность к решениям через XML
буквально всех задач, несмотря на явные потери производительности,
то везде, где можно, предлагаются сборки CLR. Противоречиво, однако.
Раньше, помнится, если не хватало знаний SQL для решения конкретных задач,
начинали крутить курсоры. Теперь новая мода появилась.
Обвешивать оригинальный SQL Server многочисленными внешними модулями.
Получается, чтобы выложить какое-нибудь такое решение здесь,
надо приводить и исходники внешних используемых модулей, не находите?
15 дек 14, 15:22    [16999347]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
Konst_One
Member

Откуда:
Сообщений: 11540
кстати, возможно обычный цикл в данном конкретном случае был бы быстрее xml/clr
15 дек 14, 15:24    [16999356]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
А чем плохи регулярные выражения, если они станут native для сервера? В Оракле есть реализация, если не ошибаюсь.
Уверен, что FOR XML крутит все тот же CLR.

Почему CLR? Потому, глаз болит видеть космический код по работе со строковыми выражениями. Теория-то говорит, что строки обрабатывать на сервере - зло, но практически решения могут получится более компактными и сопровождаемыми.

С другой стороны, миграция CLR - это тот еще геморрой.
15 дек 14, 16:10    [16999767]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
iap
То я здесь вижу маниакальную приверженность к решениям через XML
буквально всех задач, несмотря на явные потери производительности,
то везде, где можно, предлагаются сборки CLR. Противоречиво, однако.
Раньше, помнится, если не хватало знаний SQL для решения конкретных задач,
начинали крутить курсоры. Теперь новая мода появилась.
Обвешивать оригинальный SQL Server многочисленными внешними модулями.
Есть задачи, где вполне уместно применять XML, CLR и т.п. Обработка строк на стороне сервера регулярными выражениями, как раз одна из них.
iap
Получается, чтобы выложить какое-нибудь такое решение здесь,
надо приводить и исходники внешних используемых модулей, не находите?
Безусловно. Но для тривиальных функций, каковой и является обертка над Regex.Replace, имхо, не обязательно. Но если вас заинтересовало, могу выложить.

Konst_One
кстати, возможно обычный цикл в данном конкретном случае был бы быстрее xml/clr
Скалярная функция с циклом внутри быстрее "правильного" XML и медленнее "неправильного" и CLR.
15 дек 14, 19:48    [17000973]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
invm
Но если вас заинтересовало, могу выложить.
Меня не заинтересовало.
Тем более здесь есть статья покойного Кена Хендерсона как раз на эту тему.
15 дек 14, 21:03    [17001218]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
o-o
Guest
to invm: чего бы и не выложить для полноты картины.
можно, конечно, и статью поискать, но мне лично как скажут на ночь гляда "покойного",
так сразу почему-то расхачивается.

to iap
+
вам только чтиво и рекламировать.
"детки, не хотите послушать сказку покойного Пушкина об усопшем рыбаке и давно почившей рыбке?"
16 дек 14, 00:59    [17001932]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
igor888
Guest
LexusR,

красиво!
спасибо!
16 дек 14, 08:37    [17002342]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
Akina
Напиши свою функцию очистки, которая принимает твою строку и посимвольно её перебирает. Если цифирь - добавляет к выходной переменной, иначе игнорирует.
Ужас. А для работы с целыми числами нужно перебирать побитово? :-)
invm
Имхо мания - не пользоваться более простым и производительным инструментом только потому, что он CLR-based. Без обид.
Он производительный, но не простой. Будут сложности с деплоями, написанием инструкций операторам-админам для развёртывания на серверах, сложности сопровождения и тюнинга, соответствия версий. Плюс потенциальные проблемы при распаралеливании, утечки памяти и т.п.

Поверьте, это огромный геморрой, хотя и возможно в принципе.

Если очень нужны именно регулярные выражения, то можно написать и CLR

Но в данном случае, для удаления двух-пяти символов из телефонного номера, самое правильное - сделать очистку вложенными реплейсами, + генерить ошибку при попытке записать в номер совсем бредовые данные (типа "2223322, спросить васю")
Будет быстро и просто.

XML не лучший вариант с точки зрения производительности, но это хотя бы часть движка, и не требует ничего внешнего.
16 дек 14, 09:48    [17002665]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
o-o
Guest
igor888
LexusR,
красиво!
спасибо!

a еще красивее с юникодом NCHAR использовать, а то недолго и обломаться, ведь
igor888
Момент такой, не факт, что в переменной будут только символы "(", ")" или "-"


К сообщению приложен файл. Размер - 19Kb
16 дек 14, 12:59    [17003880]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
alexeyvg
Он производительный, но не простой. Будут сложности с деплоями, написанием инструкций операторам-админам для развёртывания на серверах, сложности сопровождения и тюнинга, соответствия версий. Плюс потенциальные проблемы при распаралеливании, утечки памяти и т.п.

Поверьте, это огромный геморрой, хотя и возможно в принципе.
Не поверю. Потому что развертывание заключается в восстановлении/присоединении одной единственной БД, содержащей все общедоступные CLR процедуры и функции. Что в этом геморройного - не понимаю. Что нужно тюнить в штатных методах CLR - тоже не понимаю.

alexeyvg
Но в данном случае, для удаления двух-пяти символов из телефонного номера, самое правильное - сделать очистку вложенными реплейсами, + генерить ошибку при попытке записать в номер совсем бредовые данные (типа "2223322, спросить васю")
Будет быстро и просто.

XML не лучший вариант с точки зрения производительности, но это хотя бы часть движка, и не требует ничего внешнего.
Вы хоть считали сколько вложенных replace потребуется? И сравнивали по производительности с XML? Думается, что нет.
+ Расширенный тест
use tempdb;
go

declare @i int = 0, @s varchar(max) = '@v';

while @i < 256
 begin
  if char(@i) not between '0' and '9'
   select @s = 'replace(' + @s + ', char(' + cast(@i as varchar(10)) + '), '''')';
  select @i +=1;
 end;
select @s = 'create function dbo.fn2 (@v varchar(100)) returns varchar(100) as begin declare @result varchar(100); select @result = ' + @s + '; return @result; end;'
exec(@s);
go

create function dbo.fn1(@v varchar(100))
returns varchar(100)
begin
 declare @result varchar(100) = '', @i int = 1, @c char(1);

 while @i <= len(@v)
  begin
   set @c = substring(@v, @i, 1);
   if @c between '0' and '9'
    set @result += @c;
   set @i += 1;
  end;

 return nullif(@result, '');
end;
go

create table dbo.t (id int identity primary key, s varchar(100));
go

insert into dbo.t
select top (100000)
 'вапа123А45-67В890вап' + cast(row_number() over (order by rand()) as varchar(10))
from
 master.dbo.spt_values a cross join
 master.dbo.spt_values b;
go

declare @s varchar(100);

set statistics time on;

print '/*"Правильная" работа с XML*/';
select
 @s = a.s
from
 dbo.t t cross apply
 (
  select (
   select substring(t.s, v.number, 1)
   from master.dbo.spt_values v
   where v.type = 'P' and v.number between 1 and len(t.s) and substring(t.s, v.number, 1) like '[0-9]'
   for xml path(''), type).value('.', 'varchar(100)')
 ) a(s)
option (maxdop 1);

print '/*"Неправильная" работа с XML, но допустимая для данной задачи*/';
select
 @s = a.s
from
 dbo.t t cross apply
 (
  select (
   select substring(t.s, v.number, 1)
   from master.dbo.spt_values v
   where v.type = 'P' and v.number between 1 and len(t.s) and substring(t.s, v.number, 1) like '[0-9]'
   for xml path(''))
 ) a(s)
option (maxdop 1);

print '/*SQLCLR - Regex.Replace*/'
select
 @s = [SQLCLR-обертка над Regex.Replace](t.s, '[^0-9]', '')
from
 dbo.t t
option (maxdop 1);

print '/*Скалярная функция с циклом*/';
select
 @s = dbo.fn1(t.s)
from
 dbo.t t
option (maxdop 1);

print '/*Вложенные replace*/';
select
 @s = dbo.fn2(t.s)
from
 dbo.t t
option (maxdop 1);

set statistics time off;
go

drop function dbo.fn1, dbo.fn2;
drop table dbo.t;
go
Результат
/*"Правильная" работа с XML*/
Время работы SQL Server:
Время ЦП = 5320 мс, затраченное время = 5338 мс.

/*"Неправильная" работа с XML, но допустимая для данной задачи*/
Время работы SQL Server:
Время ЦП = 3557 мс, затраченное время = 3565 мс.

/*SQLCLR - Regex.Replace*/
Время работы SQL Server:
Время ЦП = 2278 мс, затраченное время = 2314 мс.

/*Скалярная функция с циклом*/
Время работы SQL Server:
Время ЦП = 4212 мс, затраченное время = 4841 мс.

/*Вложенные replace*/
Время работы SQL Server:
Время ЦП = 48968 мс, затраченное время = 49118 мс.

SQLCLR-обертка над Regex.Replace
    [SqlFunction(IsDeterministic = true, IsPrecise = true)]
    public static SqlString RegexpReplace(SqlString AText, SqlString APattern, SqlString AReplacement)
    {
        if (APattern.IsNull || AText.IsNull || AReplacement.IsNull)
            return SqlString.Null;

        return Regex.Replace(AText.Value, APattern.Value, AReplacement.Value);
    }
16 дек 14, 13:03    [17003922]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7868
invm,

если переползти с 2008 на 2012 вин сервер можно получить ошибку несоответствия системных сборок, если таковые были опубликованы в базе. Однако, неясно на кой он их публикует в базе.
16 дек 14, 13:10    [17003976]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
invm
Вы хоть считали сколько вложенных replace потребуется? И сравнивали по производительности с XML? Думается, что нет.
Думаю, пяти-десяти хватит, я же писал, ограничиться наиболее вероятными символами.
invm
Расширенный тест
Спасибо, посмотрю чуть позже.
16 дек 14, 13:38    [17004167]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
alexeyvg
Думаю, пяти-десяти хватит, я же писал, ограничиться наиболее вероятными символами.
А если встретится наименее вероятный, прекращаем работать? Зачем такие ненадежные решения?
16 дек 14, 14:23    [17004415]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Для полноты картины приведу ссылки на Хендерсона.
Он там, кстати, предлагал регулярные выражения без CLR-сборок...
Regular Expressions in T-SQL
Regular Expressions in T-SQL, Part II
16 дек 14, 14:31    [17004485]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
iap
Member

Откуда: Москва
Сообщений: 47001
Регулярные выражения облегчают сопоставление шаблонов и извлечение данных

Хотя, наверно, ссылок-то можно много нарыть с лёгкостью необыкновенной...
16 дек 14, 14:41    [17004548]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
Если важна производительность, то для работы со строками действительно рекомендуют использовать CLR, как сами МС так и некоторые, кто тестировал производительность разных способов (если я правильно помню была обширная дискуссия на эту тему на SSC). В целом, конечно есть неудобства, о которых говорили выше, просто каждый выбирает сам, что важнее. Я был бы за то, чтобы если не полную поддержку регулярных выражений, то хотя бы какие-то шаги в этом направлении были сделаны внутри самого сиквела. Не так сложно ведь. Мне кажется, это чисто маркетинговое решение: у нас есть .НЕТ, он интегрирован с сиквелом, используйте его. Имхо, конечно, точной инфы нет, но уж больно похоже.

invm,
в тесте с replace немного подправьте функцию, будет побыстрее:
+
declare @i int = 0, @s varchar(max) = '@v';

while @i < 256
 begin
  if char(@i) not between '0' and '9'
   select @s = 'replace(' + @s + ' COLLATE LATIN1_GENERAL_BIN, char(' + cast(@i as varchar(10)) + '), '''')';
  select @i +=1;
 end;
select @s = 'create function dbo.fn3 (@v varchar(100)) returns varchar(100) as begin declare @result varchar(100); select @result = ' + @s + '; return @result; end;'
exec(@s);
go

Но решение с Replace конечно не очень элегантное, хотя как я понял имелся ввиду какой-то просто случай, а не замена всех символов при помощи replace.
16 дек 14, 14:54    [17004667]     Ответить | Цитировать Сообщить модератору
 Re: Как из строки убрать всё кроме цифр  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31444
invm
alexeyvg
Думаю, пяти-десяти хватит, я же писал, ограничиться наиболее вероятными символами.
А если встретится наименее вероятный, прекращаем работать? Зачем такие ненадежные решения?
Я же писал, проверять на уровне ввода данных (и констрейном на базе).
Понятно, это всё зависит от задачи, я бы вообще в нормализованном виде хранил.
А то задача формулируется как:
igor888
DECLARE @S NVARCHAR(50)
SET @S = '(922)789-10-15'

-- как убрать из "@S" всё кроме цифр. Момент такой, не факт, что в переменной будут только символы "(", ")" или "-"
Так что если кто то введёт номер с + и кодом страны, а кто то без, то будет плохо.

Да, реплейс по всем символам неожиданно медленный, даже десяток вложенных реплейсов выполняется не быстрее, чем другие методы. :-(
invm
Что в этом геморройного - не понимаю.
Ну вот - вы в тесте не привели код создания сборки (что бы просто выполнить в SSMS), хотя это в принципе несложная вещь, я обычно так сборки деплоил.

Вот это и геморойно. Отдельная база с функциями - это хорошая идея, да. Но менять базу при работающих пользователях тоже как то нехорошо, то есть деплой немного неудобнее, пусть даже это обычно некритично.

Потом, откуда её брать то, базу? Нужно взять эту базу с продакшена, восстановить к себе, поменять там функцию, отправить в админское подразделение?

И вообще к этому нервно админы относятся. Функцию они протестируют, покрутят, повздыхают, через неделю задеплоят. А заменённая база с кодом потенциально может повлиять на всё - им всё нужно тестировать? Вы им будете клясться "слушай, трогал только функцию, больше ничего не трогал!", а отвечать то им?

И вместо этого - просто код на T-SQL. Который я выполню, он выполнит, админ выполнит, по почте отослал, задеплоил, всё в порядке. Ну конечно, это не сложнее, а проще.
17 дек 14, 00:41    [17007915]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить