powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странная ошибка в табличной функции
18 сообщений из 18, страница 1 из 1
Странная ошибка в табличной функции
    #39611060
m71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите, куда можно копать в такой ситуации.

Есть табличная функция, которая иногда стала выдавать не то, что должна:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ALTER FUNCTION [dbo].[fnRKCAccrEvidInd](@UOrgID decimal(16,4), @BldID bigint, @D1 smalldatetime, @D2 smalldatetime)
RETURNS @R TABLE (
...
)
AS 
BEGIN  
  INSERT INTO @R
  SELECT ...

  RETURN;
END


Делаем запрос

Код: sql
1.
SELECT * FROM dbo.fnRKCAccrEvidInd(2461224479, 2400001000083204900, '20171201', '20171231')


Получаем результат, но вместо значений в некоторых строках почему-то нули.

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

Делаем такой бессмысленный финт: параметр @D2 переименовываем на @D2x,
декларируем @D2 в теле функции, делаем SET @D2 = @D2x

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
ALTER FUNCTION [dbo].[fnRKCAccrEvidInd](@UOrgID decimal(16,4), @BldID bigint, @D1 smalldatetime, @D2x smalldatetime)
RETURNS @R TABLE (
...
)
AS 
BEGIN  
  DECLARE @D2 smalldatetime
  SET @D2 = @D2x

  --дальше все тоже самое, ничего не меняем
  INSERT INTO @R
  SELECT ...

  RETURN;
END


Вот теперь все работает правильно!
Добавили в функцию бредовое ненужное действие и получили правильный результат.
Как такое может быть?

Таких функций в проекте очень много. И где оно опять выстрелит...
Подскажите, что делать и в чем может быть ошибка?
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611066
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не совсем по теме, но если в функции один SELECT, то почему не сделать инлайн-функцию?
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611083
m71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В проекте много таких функций, они иногда меняются. Где-то было много Select-ов, стал один, где-то наоборот.
В критичных местах переделываем. Ну да, наверное это не по теме.
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611088
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m71, Каст между varchar'ами и различными date/datetime/smalldatetime... имеет место быть?
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611092
Гигабайт Мегабайтович Килобайтов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
действительно нет ли где не явного преоброзования (и не обязательно из varchar)
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611105
Кусочек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
SELECT * FROM dbo.fnRKCAccrEvidInd(2461224479, 2400001000083204900, N'20171201', N'20171231')



А такой вызов как-то влияет на результат?
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611108
хм-хм-хм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дайте уже полный текст этой функции
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611171
m71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кусочек
Код: sql
1.
SELECT * FROM dbo.fnRKCAccrEvidInd(2461224479, 2400001000083204900, N'20171201', N'20171231')



А такой вызов как-то влияет на результат?

Не влияет
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611174
m71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм-хм-хмдайте уже полный текст этой функции

Код: sql
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
CREATE FUNCTION [dbo].[fnRKCAccrEvidInd](@UOrgID decimal(16,4), @BldID bigint, @D1 smalldatetime, @D2 smalldatetime)
RETURNS @R TABLE 
(
  cdate date NOT NULL,
  acc_id decimal(19,7) NOT NULL,
  ptype_id tinyint NOT NULL,
  cvol2_11 decimal(12,6),
  cvol2_21 decimal(12,6),
  cvol2_22 decimal(12,6),
  cvol2_31 decimal(12,6),
  cvol2_32 decimal(12,6),
  cvol2_33 decimal(12,6),
  cvol2 AS ISNULL(cvol2_11,0.0) + ISNULL(cvol2_21,0.0) + ISNULL(cvol2_22,0.0) + ISNULL(cvol2_31,0.0) + ISNULL(cvol2_32,0.0) + ISNULL(cvol2_33,0.0)
  PRIMARY KEY CLUSTERED (cdate, acc_id, ptype_id)
)
AS 
BEGIN  

  INSERT INTO @R

  SELECT 

  T4.cdate,  
  T4.acc_id,
  T4.ptype_id,
  cvol2_11 = SUM(T4.dvol_11) OVER (PARTITION BY T4.acc_id, T4.ptype_id ORDER BY T4.acc_id, T4.ptype_id),
  cvol2_21 = SUM(T4.dvol_21) OVER (PARTITION BY T4.acc_id, T4.ptype_id ORDER BY T4.acc_id, T4.ptype_id),
  cvol2_22 = SUM(T4.dvol_22) OVER (PARTITION BY T4.acc_id, T4.ptype_id ORDER BY T4.acc_id, T4.ptype_id),
  cvol2_31 = SUM(T4.dvol_32) OVER (PARTITION BY T4.acc_id, T4.ptype_id ORDER BY T4.acc_id, T4.ptype_id),
  cvol2_32 = SUM(T4.dvol_32) OVER (PARTITION BY T4.acc_id, T4.ptype_id ORDER BY T4.acc_id, T4.ptype_id),
  cvol2_33 = SUM(T4.dvol_33) OVER (PARTITION BY T4.acc_id, T4.ptype_id ORDER BY T4.acc_id, T4.ptype_id)

  FROM (
 
  SELECT
  T3.cdate,
  T3.acc_id,
  T3.ptype_id,
  points_count = COUNT(T3.point_id),
  evid_count = SUM(CASE WHEN ctar_id IS NULL THEN 0 ELSE 1 END),
  
  dvol_11 = SUM(CASE WHEN T3.ctar_id = 1 THEN CASE WHEN T3.clevel_id = 2 THEN T3.dvol_1 * (CASE WHEN T3.INHS = 0 THEN T3.ashare_a ELSE CAST(T3.INH as decimal(5,1)) / CAST(T3.INHS as decimal(5,1)) END) ELSE T3.dvol_1 END ELSE NULL END),
  dvol_21 = SUM(CASE WHEN T3.ctar_id = 2 THEN CASE WHEN T3.clevel_id = 2 THEN T3.dvol_1 * (CASE WHEN T3.INHS = 0 THEN T3.ashare_a ELSE CAST(T3.INH as decimal(5,1)) / CAST(T3.INHS as decimal(5,1)) END) ELSE T3.dvol_1 END ELSE NULL END),
  dvol_22 = SUM(CASE WHEN T3.ctar_id = 2 THEN CASE WHEN T3.clevel_id = 2 THEN T3.dvol_2 * (CASE WHEN T3.INHS = 0 THEN T3.ashare_a ELSE CAST(T3.INH as decimal(5,1)) / CAST(T3.INHS as decimal(5,1)) END) ELSE T3.dvol_2 END ELSE NULL END),
  dvol_31 = SUM(CASE WHEN T3.ctar_id = 3 THEN CASE WHEN T3.clevel_id = 2 THEN T3.dvol_1 * (CASE WHEN T3.INHS = 0 THEN T3.ashare_a ELSE CAST(T3.INH as decimal(5,1)) / CAST(T3.INHS as decimal(5,1)) END) ELSE T3.dvol_1 END ELSE NULL END),
  dvol_32 = SUM(CASE WHEN T3.ctar_id = 3 THEN CASE WHEN T3.clevel_id = 2 THEN T3.dvol_2 * (CASE WHEN T3.INHS = 0 THEN T3.ashare_a ELSE CAST(T3.INH as decimal(5,1)) / CAST(T3.INHS as decimal(5,1)) END) ELSE T3.dvol_2 END ELSE NULL END),
  dvol_33 = SUM(CASE WHEN T3.ctar_id = 3 THEN CASE WHEN T3.clevel_id = 2 THEN T3.dvol_3 * (CASE WHEN T3.INHS = 0 THEN T3.ashare_a ELSE CAST(T3.INH as decimal(5,1)) / CAST(T3.INHS as decimal(5,1)) END) ELSE T3.dvol_3 END ELSE NULL END)

  FROM (

  SELECT
  CL.cdate,
  PA.flat_id,
  T2.acc_id,
  T2.ptype_id,
  T2.point_id,
  T2.clevel_id,
  T2.ctar_id,
  T2.dvol_1,
  T2.dvol_2, 
  T2.dvol_3,
  PR.INH,
  PR.INHS,
  ashare_a = ISNULL(PP.pacc_share,1.0),
  pacc_share = ISNULL(PP.pacc_share,1.0)

  FROM Calendar CL

  INNER JOIN (

  SELECT 
  T1.acc_id,
  T1.point_id,
  T1.clevel_id,
  T1.ptype_id,
  T1.pbeg_date,
  T1.pend_date,
  T1.levi_date,
  T1.evid_date,
  T1.ctar_id,   
  dvol_1 = CASE WHEN T1.rep_date = @D1 THEN CAST(T1.vol_1 / T1.days_cnt AS decimal(20,11)) ELSE 0.0 END, 
  dvol_2 = CASE WHEN T1.rep_date = @D1 THEN CAST(T1.vol_2 / T1.days_cnt AS decimal(20,11)) ELSE 0.0 END,  
  dvol_3 = CASE WHEN T1.rep_date = @D1 THEN CAST(T1.vol_3 / T1.days_cnt AS decimal(20,11)) ELSE 0.0 END 
  FROM (
  
  SELECT
  PA.acc_id,
  CP.point_id,
  CP.clevel_id,
  CP.ptype_id,
  pbeg_date = CP.beg_date, 
  pend_date = ISNULL(CP.end_date,'20400101'), 
  CE.ctar_id,   
  CE.levi_date,  
  rep_date = dbo.fnMonthFirstDay(CE.evid_date),
  CE.evid_date,
  CE.vol_1,
  CE.vol_2, 
  CE.vol_3,
  days_cnt = DATEDIFF(day,dbo.MaxDate(CE.levi_date,dbo.fnMonthFirstDay(CE.evid_date)),CE.evid_date) + 1
  FROM Pers_accounts PA 
  INNER JOIN (--так быстрее в 10 раз
  SELECT 
  PA.acc_id,
  CP.point_id
  FROM Counter_points CP
  INNER JOIN Pers_accounts PA ON (CP.clevel_id = 2 AND CP.build_id = PA.build_id AND CP.flat_id = PA.flat_id)
  UNION
  SELECT 
  PA.acc_id,
  CP.point_id
  FROM Counter_points CP
  INNER JOIN Pers_accounts PA ON (CP.clevel_id = 3 AND CP.acc_id = PA.acc_id)
  ) MP ON (PA.acc_id = MP.acc_id)
  INNER JOIN Counter_points CP ON (MP.point_id = CP.point_id)
  LEFT OUTER JOIN (    
	SELECT 
    CN.point_id,
    CN.count_id,
	CS.ctar_id,
    levi_date = LAG(CE.evid_date,1,CN.beg_date) OVER (PARTITION BY CE.count_id ORDER BY CE.count_id),
    CE.evid_date,
	CE.vol_1,
    CE.vol_2, 
    CE.vol_3
    FROM Counter_evid CE
	INNER JOIN Counters CN ON (CE.count_id = CN.count_id)
	INNER JOIN Counter_points CP ON (CP.point_id = CN.point_id)
	INNER JOIN Counter_series CS ON (CN.cseries_id = CS.cseries_id)
	WHERE CE.evid_date >= @D1
	  AND CE.evid_date <= ISNULL(CN.ncheck_date,'20400101') --дата поверки
	  AND CE.evid_date BETWEEN CP.beg_date AND ISNULL(CP.end_date,'20400101')
	  AND CE.evid_date BETWEEN CN.beg_date AND ISNULL(CN.end_date,'20400101')
	  AND CN.beg_date <= @D2 AND ISNULL(CN.end_date,'20400101') >= @D1	  	  
    ) CE ON (CP.point_id = CE.point_id)

  WHERE (CP.beg_date <= @D2) AND (ISNULL(CP.end_date,'20400101') >= @D1)
    AND (PA.build_id = @BldID)	
   
  ) T1
  
  ) T2 ON ((T2.evid_date IS NULL) OR (CL.cdate BETWEEN T2.levi_date AND T2.evid_date))
	AND (CL.cdate BETWEEN T2.pbeg_date AND T2.pend_date)

  INNER JOIN Pers_accounts PA ON (T2.acc_id = PA.acc_id)
    AND (PA.beg_date <= CL.cdate AND ISNULL(PA.end_date,'20400101') >= CL.cdate)
  
  LEFT OUTER JOIN PAcc_params PP ON (
	(T2.acc_id = PP.acc_id) AND	
	(PP.beg_date = (SELECT MAX(beg_date) FROM PAcc_params WHERE (acc_id = T2.acc_id) AND beg_date <= CL.cdate))
	) 
	
  LEFT OUTER JOIN (
    SELECT
	PR.cdate,
	PR.acc_id,
	INH = ISNULL(PR.INH,0),
    INHS = ISNULL((SUM(INH) over(PARTITION BY PR.cdate, PA.flat_id)),0)
	FROM dbo.fnRKCAccrRegM(@UOrgID,@BldID,@D1,@D2) PR
	INNER JOIN Pers_accounts PA ON (PR.acc_id = PA.acc_id)
	) PR ON (CL.CDate = PR.cdate) AND (T2.acc_id = PR.acc_id)  

  WHERE (CL.cdate BETWEEN @D1 AND @D2)
    AND (PA.org_id = @UOrgID) 

  ) T3

  GROUP BY T3.cdate, T3.acc_id, T3.ptype_id

  ) T4

  WHERE T4.points_count = T4.evid_count

  RETURN;
END

...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611178
хм-хм-хм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну и код функции dbo.fnRKCAccrRegM тоже давайте
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611181
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и главное, где то, что "в некоторых строках почему-то нули"
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611186
m71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Результат правильный:
2017-12-01 2461224479.3000090 1 2.000000 NULL NULL NULL NULL NULL 2.000000
2017-12-01 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000
2017-12-02 2461224479.3000090 1 2.000000 NULL NULL NULL NULL NULL 2.000000
2017-12-02 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000
2017-12-03 2461224479.3000090 1 2.000000 NULL NULL NULL NULL NULL 2.000000
2017-12-03 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000
2017-12-04 2461224479.3000090 1 2.000000 NULL NULL NULL NULL NULL 2.000000
2017-12-04 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000

Результат, который выдает функция:
2017-12-01 2461224479.3000090 1 0.000000 NULL NULL NULL NULL NULL 0.000000
2017-12-01 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000
2017-12-02 2461224479.3000090 1 0.000000 NULL NULL NULL NULL NULL 0.000000
2017-12-02 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000
2017-12-03 2461224479.3000090 1 0.000000 NULL NULL NULL NULL NULL 0.000000
2017-12-03 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000
2017-12-04 2461224479.3000090 1 0.000000 NULL NULL NULL NULL NULL 0.000000
2017-12-04 2461224479.3000090 2 1.000000 NULL NULL NULL NULL NULL 1.000000

Кол-во строк совпадает, но через строчку данные обнуляются

Вообще, я самого главного не могу понять. Чем @D2 smalldatetime в заголовке функции отличается от того же самого в ее теле
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611191
m71
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хм-хм-хмну и код функции dbo.fnRKCAccrRegM тоже давайте

Код: sql
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
CREATE FUNCTION dbo.fnRKCAccrRegM(@UOrgID decimal(16,4), @BldID bigint, @D1 date, @D2 date)
RETURNS @R TABLE 
(
    cdate date NOT NULL,
	acc_id decimal(19,7) NOT NULL,
	INH smallint --проживающих на лицевом
	PRIMARY KEY CLUSTERED (cdate, acc_id)
)
AS 
BEGIN  
  INSERT INTO @R
    
  SELECT 
  CL.cdate,
  PA.acc_id,
  INH = CASE WHEN ISNULL(T2.INH,0) = 0 THEN ISNULL(T1.INH,0) ELSE ISNULL(T2.INH,0) END
  FROM Calendar CL
  INNER JOIN Pers_accounts PA ON (CL.cdate BETWEEN PA.beg_date AND ISNULL(PA.end_date,'20400101'))

  LEFT OUTER JOIN (
  SELECT 
  CL.cdate,
  PA.acc_id,
  INH = (COUNT(ISNULL(PR.man_id,0)))
  FROM Calendar CL
  INNER JOIN Pers_accounts PA ON (CL.cdate BETWEEN PA.beg_date AND ISNULL(PA.end_date,'20400101'))
  INNER JOIN PAcc_own PO ON (PA.acc_id = PO.acc_id)
  INNER JOIN PAcc_own_rec PR ON (PO.own_id = PR.own_id) AND (CL.cdate BETWEEN PR.beg_date AND ISNULL(PR.end_date,'20400101'))
  WHERE (CL.cdate BETWEEN @D1 AND @D2) AND (PA.build_id = @BldID)
    AND (PA.org_id = @UOrgID)
    AND (PA.beg_date <= CL.cdate AND ISNULL(PA.end_date,'20400101') >= CL.cdate)
    AND (PR.deleted = 0)
  GROUP BY CL.cdate, PA.acc_id
  ) T1 ON CL.cdate = T1.cdate AND PA.acc_id = T1.acc_id

  LEFT OUTER JOIN (
  SELECT 
  CL.cdate,
  PA.acc_id,
  INH = (COUNT(ISNULL(RR.man_id,0)))
  FROM Calendar CL
  INNER JOIN Pers_accounts PA ON (CL.cdate BETWEEN PA.beg_date AND ISNULL(PA.end_date,'20400101'))
  INNER JOIN PAcc_reg PR ON (PA.acc_id = PR.acc_id)
  INNER JOIN PAcc_reg_rec RR ON (PR.reg_id = RR.reg_id) 
    AND (CL.cdate BETWEEN RR.beg_date AND (CASE WHEN RR.estat_id = 1 THEN ISNULL(RR.end_date,'20400101') ELSE '20400101' END))
    AND NOT EXISTS (
	   SELECT * FROM PAcc_reg_rec_miss RM
	   WHERE (RR.reg_id = RM.reg_id)
		AND (RM.beg_date <= CL.cdate AND ISNULL(RM.end_date,'20400101') >= CL.cdate)
	   )	
  WHERE (CL.cdate BETWEEN @D1 AND @D2) AND (PA.build_id = @BldID)  
    AND (PA.beg_date <= CL.cdate AND ISNULL(PA.end_date,'20400101') >= CL.cdate)
    AND (RR.deleted = 0)
	AND (RR.rstat_id = 1)
  GROUP BY CL.cdate, PA.acc_id
  ) T2 ON CL.cdate = T2.cdate AND PA.acc_id = T2.acc_id

  WHERE (CL.cdate BETWEEN @D1 AND @D2) AND (PA.build_id = @BldID)

  RETURN
END
GO 
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611201
хм-хм-хм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а если сделать вот так: sp_recompile 'dbo.fnRKCAccrEvidInd', ошибка будет повторяться?
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611324
лолл
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения за оффтоп, но это жуткий говнокод... по три раза обращаемся к одним и тем же таблицам и делаем одни и те же соединения, затем все это конкатенируем и выводим результат в виде табличной функции.... почему бы одинаковые куски кода не оформить в виде представлений/табличных переменных/inline-функций? Зачем читать одни и те же данные многократно? И зачем на каждой таблице проверки дат? неужели нельзя определить минимальный отрезок и один раз его проверить, да еще через сомнительные преобразования ISNULL(...,'20400101').. почему бы не писать IS NULL OR ... ?
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611332
Кусочек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m71Кусочек
Код: sql
1.
SELECT * FROM dbo.fnRKCAccrEvidInd(2461224479, 2400001000083204900, N'20171201', N'20171231')



А такой вызов как-то влияет на результат?

Не влияет

Код: sql
1.
SELECT @@VERSION



Покажите результат запроса.
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611333
Гигабайт Мегабайтович Килобайтов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нус... с таким кодом только "выворачивать фарш назад", т.е. писать тесткейсы, которые отловят параметры, при которых появляются "не правильные данные", а потом "разворачивать назад" всё функции.
...
Рейтинг: 0 / 0
Странная ошибка в табличной функции
    #39611556
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m71Определили, что на ошибку влияет входной параметр @D2 smalldatetime, который как-то не так попадает в функциюА точно @D2, не @D1?
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Странная ошибка в табличной функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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