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

Откуда: Москва
Сообщений: 47142
iap
poisk32
пропущено...


2000 : The current compatibility level is 80.

2008 : The current compatibility level is 80.
Вот так-то вот! :)
Правда к данной теме это, возможно, и не относится.
7 ноя 11, 14:28    [11558234]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
poisk32
Member

Откуда:
Сообщений: 55
iap
poisk32
пропущено...


2000 : The current compatibility level is 80.

2008 : The current compatibility level is 80.
Вот так-то вот! :)


Уже проверил. Установил 80 Результат тот-же
7 ноя 11, 14:28    [11558236]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
poisk32
iap
пропущено...
Вот так-то вот! :)


Уже проверил. Установил 80 Результат тот-же
Вообще-то, Вам надо стремиться установить 100
И избавиться от *= и =*

(Простите за оффтоп).

Я по-прежнему не рискую дочитать Ваш скрипт.
Мои глаза уже смотрят друг на друга.
7 ноя 11, 14:35    [11558297]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
Maks Bragar
Member

Откуда: UA->AT
Сообщений: 165
use master
GO
SET ANSI_NULL_DFLT_ON ON
GO
CREATE PROCEDURE isp_t1
AS 
CREATE TABLE #t1 (id INT )
INSERT INTO #t1
(
	id
)
VALUES
(
NULL
)
GO
EXEC isp_t1
GO
DROP PROCEDURE isp_t1
GO
SET ANSI_NULL_DFLT_ON OFF
GO
CREATE PROCEDURE isp_t1
AS 
CREATE TABLE #t1 (id INT )
INSERT INTO #t1
(
	id
)
VALUES
(
NULL
)
GO
EXEC isp_t1
GO
DROP PROCEDURE isp_t1
GO
?
7 ноя 11, 14:39    [11558337]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Maks Bragar,

SET ANSI_NULL_DFLT_ON
на
SELECT ... INTO
не влияет в SQL2008!
Я пару часов назад проверил на всякий случай
7 ноя 11, 14:45    [11558411]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
poisk32
Member

Откуда:
Сообщений: 55
Maks Bragar
use master
GO
SET ANSI_NULL_DFLT_ON ON
GO
CREATE PROCEDURE isp_t1
AS 
CREATE TABLE #t1 (id INT )
INSERT INTO #t1
(
	id
)
VALUES
(
NULL
)
GO
EXEC isp_t1
GO
DROP PROCEDURE isp_t1
GO
SET ANSI_NULL_DFLT_ON OFF
GO
CREATE PROCEDURE isp_t1
AS 
CREATE TABLE #t1 (id INT )
INSERT INTO #t1
(
	id
)
VALUES
(
NULL
)
GO
EXEC isp_t1
GO
DROP PROCEDURE isp_t1
GO
?


2000 и 2008 одинаковый ответ


(1 row(s) affected)
Msg 515, Level 16, State 2, Procedure isp_t1, Line 4
Cannot insert the value NULL into column 'id', table 'tempdb.dbo.#t1_________________________________________________________________________________________________________________0000000000B8'; column does not allow nulls. INSERT fails.
The statement has been terminated.
7 ноя 11, 14:50    [11558453]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
komrad
Member

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

select @@version

покажите с 2008
7 ноя 11, 15:03    [11558580]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
poisk32
Member

Откуда:
Сообщений: 55
komrad
poisk32,

select @@version

покажите с 2008


Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Workgroup Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
7 ноя 11, 15:07    [11558615]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
а если вот это убрать
update #tmp set Id_klejmo=NULL,Id_torec=NULL

и в первом скрипте заменить
	,c.Recid as Id_klejmo
	,c.Recid as Id_torec
на
	,null as Id_klejmo
	,null  as Id_torec
нафига делать двойную работу?

кому минтересно, вот распарсил :)
+

SELECT 
	space(5) as TipZ
	,rtrim(ltrim(rtrim(ltrim(isnull(c.Klejmo,'')))+' '+ltrim(rtrim(c.Naim_izdel)+' '+rtrim(ltrim(isnull(c.Torec,'')))))) as Naim_iz
	,c.Kol_zven
	,c.Kolich
	,c.Metri
	,isnull(d.Naim_tar_ru,'') as Naim_tar
	,c.Kolich_tara
	,convert(numeric(12,3),0) as Kol_pak
	,convert(numeric(12,3),0) as Kol_upak
	,convert(numeric(12,0),0) as Kol_got
	,a.Kontrakt
	,a.Zakaz
	,a.Num_dok
	,b.Naim_klient_lv
	,c.Recid_izdel
	,c.Num_pp
	,c.Tip_zakaz
	,c.Recid
	,e.Tip_izdel
	,e.Step_izdel
	,c.Klejmo
	,c.Torec
	,ltrim(rtrim(e.Naim_izdel_lv)) as NaimL
	,ltrim(rtrim(e.Naim_izdel_ru)) as NaimR
	,ltrim(rtrim(e.Naim_izdel_en)) as NaimE
	,ltrim(rtrim(e.Naim_izdel_de)) as NaimD
	,c.Recid as Id_klejmo
	,c.Recid as Id_torec
	,c.Naim_izdel 
into #tmp 
FROM 
	Sbit_zakaz a
	,Sbit_klient b
	,Sbit_zakaz_poz c
	,Spr_tara d
	,Spr_izdel e 
WHERE 
	b.Recid =*a.Recid_klient 
	and a.Num_dok =6709 
	and c.Recid_izdel=e.Recid 
	and a.Recid=c.Recid_zakaz 
	and c.Recid_tara*=d.Recid 
	and (c.Kolich > 0 or c.Metri > 0) 
	and a.Bit_meneger=1 
ORDER BY 
	c.Num_pp
	
update #tmp set Kol_pak=(select isnull(sum(Sbit_poz_ttnkl.Kolich),0) from Sbit_poz_ttnkl where Sbit_poz_ttnkl.Recid_zakaz=#tmp.Recid)
update #tmp set Kol_got=(select isnull(sum(Upak_dok_poz.Kolich),0) from Upak_dok_poz where Upak_dok_poz.Recid_zakaz=#tmp.Recid)
update #tmp set Id_klejmo=NULL,Id_torec=NULL
update #tmp set Id_klejmo=(select Recid from Spr_izdel_klejmo where Spr_izdel_klejmo.Kod_klejmo=#tmp.Klejmo)
update #tmp set Id_torec=(select Recid from Spr_izdel_torec where Spr_izdel_torec.Tip_torec=#tmp.Torec)
select * from #tmp
drop table #tmp
7 ноя 11, 15:12    [11558652]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
HandKot, 11557395
7 ноя 11, 15:30    [11558788]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
invm
HandKot, 11557395
Чуть выше: 11557373
7 ноя 11, 15:49    [11558941]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3058
а можно и просто cast использовать
7 ноя 11, 16:03    [11559044]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
HandKot
а можно и просто cast использовать
Если известен тип поля, то да.
А тут он выяснился не сразу (UNIQUEIDENTIFIER)
7 ноя 11, 16:04    [11559053]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
poisk32
Member

Откуда:
Сообщений: 55
Все пытаются изменть скрипт. Это не проблемма. Правда долго но можно. Одних только форм более 600

Проблема в том что эта база не работает как требуется на 2008
а на 2000 работает. Значет порблема скорее всего в настройках сервера по умолчанию
Вопрос где ???
7 ноя 11, 16:10    [11559112]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
Glory
Member

Откуда:
Сообщений: 104751
poisk32
Значет порблема скорее всего в настройках сервера по умолчанию
Вопрос где ???

Еще раз
Вы предложенный мной скрипт запускали ? На обоих серверах ?
А структуру таблиц как сравнивали ?
7 ноя 11, 16:18    [11559156]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Что вернёт
SELECT COLUMNPROPERTY(OBJECT_ID(N'Sbit_zakaz_poz','U').N'Recid','AllowsNull');
на обоих серверах?
7 ноя 11, 16:23    [11559196]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Точку вместо запятой написал :(
iap
Что вернёт
SELECT COLUMNPROPERTY(OBJECT_ID(N'Sbit_zakaz_poz','U'),N'Recid','AllowsNull');
на обоих серверах?
7 ноя 11, 16:25    [11559205]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
poisk32
Member

Откуда:
Сообщений: 55
iap
Точку вместо запятой написал :(
iap
Что вернёт
SELECT COLUMNPROPERTY(OBJECT_ID(N'Sbit_zakaz_poz','U'),N'Recid','AllowsNull');
на обоих серверах?


Оба возвращают 0
7 ноя 11, 16:30    [11559246]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
poisk32
iap
Точку вместо запятой написал :(пропущено...


Оба возвращают 0
Значит, это поле не допускает значение NULL.
И раньше тоже.
7 ноя 11, 16:42    [11559324]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
poisk32
Member

Откуда:
Сообщений: 55
iap
poisk32
пропущено...


Оба возвращают 0
Значит, это поле не допускает значение NULL.
И раньше тоже.


Так в этом и смысл. 2000 работает а 2008 выдает ошибку !!! Почему ?
7 ноя 11, 16:44    [11559338]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Что вернет
begin tran;
create table dbo.T (v int not null);
select * into #t from dbo.T;
select columnproperty(object_id('tempdb..#t', 'U'), 'v', 'AllowsNull');
rollback;
на обоих серверах?
7 ноя 11, 16:51    [11559397]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
poisk32
Member

Откуда:
Сообщений: 55
invm
Что вернет
begin tran;
create table dbo.T (v int not null);
select * into #t from dbo.T;
select columnproperty(object_id('tempdb..#t', 'U'), 'v', 'AllowsNull');
rollback;
на обоих серверах?


На обоих NULL
7 ноя 11, 16:55    [11559423]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
Glory
Member

Откуда:
Сообщений: 104751
Тогда уж
begin tran;
select top 1 Recid as v into #t from Sbit_zakaz_poz;
select columnproperty(object_id('tempdb..#t', 'U'), 'v', 'AllowsNull');
rollback;
7 ноя 11, 17:00    [11559464]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Тьфу... Вот так:
begin tran;
create table dbo.T (v int not null);
select * into #t from dbo.T;
use tempdb;
select columnproperty(object_id('tempdb..#t', 'U'), 'v', 'AllowsNull');
rollback;
7 ноя 11, 17:01    [11559471]     Ответить | Цитировать Сообщить модератору
 Re: Срочно !!! Помогите !!!  [new]
poisk32
Member

Откуда:
Сообщений: 55
invm
Тьфу... Вот так:
begin tran;
create table dbo.T (v int not null);
select * into #t from dbo.T;
use tempdb;
select columnproperty(object_id('tempdb..#t', 'U'), 'v', 'AllowsNull');
rollback;


Обе возвращают 0
7 ноя 11, 17:05    [11559515]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить