Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 не записываются данные в табл  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
при вызове ХП появляется окно ввода значения. ввёл. запрос показывает что сработал, те выводит данные, например,
'1111' 'Дудкин ВВ'. обновляю табл, а значения прежние - null.
ALTER PROCEDURE [dbo].[sp_HARDWARE_INVENTORY2]
	@MachineID int,
	@FIO varchar(max) = null
AS
insert into dbo.t1 (FIO) 
select FIO
from dbo.T1
where (MachineID=@MachineID) and ((FIO=@FIO) 
	SELECT @MachineID, @FIO
22 авг 12, 12:30    [13048396]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
seeerg_23,
автор
..обновляю табл..
вы в нее записи добавляете.
select FIO
from dbo.T1
where MachineID=@MachineID and FIO=@FIO 

этот запрос что вернет?
22 авг 12, 12:34    [13048418]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
nicescar
Member

Откуда:
Сообщений: 94
В вашем коде вставка будет осуществляться только при условии присутствия записи c id=@id и fio=@fio в таблице.
Вам, очевидно, нужно сделать как-нибудь так (при условии, что ID с автоинкрементом/автозаполнением):
insert into dbo.t1 (FIO) 
values ( @FIO )
select MachineID, FIO
from dbo.T1
where FIO=@FIO 
22 авг 12, 12:37    [13048444]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
edyaN
Member

Откуда: Berlin
Сообщений: 185
seeerg_23,

varchar(max) для ФИО это явно перебор.
22 авг 12, 12:38    [13048449]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
denis2710
seeerg_23,
автор
..обновляю табл..
вы в нее записи добавляете.
select FIO
from dbo.T1
where MachineID=@MachineID and FIO=@FIO 

этот запрос что вернет?


ФИО и ID, присвоенные этим параметрам
1-дудкин
22 авг 12, 12:41    [13048470]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
nicescar
В вашем коде вставка будет осуществляться только при условии присутствия записи c id=@id и fio=@fio в таблице.
Вам, очевидно, нужно сделать как-нибудь так (при условии, что ID с автоинкрементом/автозаполнением):
insert into dbo.t1 (FIO) 
values ( @FIO )
select MachineID, FIO
from dbo.T1
where FIO=@FIO 


поле ID уже заполнено автоинкрементом. мне нужно изменить только ФИО.
22 авг 12, 13:01    [13048646]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
nicescar
Member

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

изменить? Тогда вам нужен оператор UPDATE, а не INSERT.
22 авг 12, 13:24    [13048836]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
да, точно update. но у меня все строки становятся одного значения. а мне нужно, только выбранной строки
ALTER PROCEDURE [dbo].[sp_123]
	--@MachineID int,
	@FIO varchar(max) = null
AS
update dbo.t1 
set  FIO=@FIO
select FIO
from dbo.T1
where (MachineID=@MachineID) and ((FIO=@FIO) 
	SELECT @MachineID, @FIO
или 

where (MachineID=5) and (FIO=@FIO)   
	SELECT @FIO


выдаёт
1 - дудкин
5 - дудкин (должно быть другое ФИО)
22 авг 12, 14:05    [13049194]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
seeerg_23,
ALTER PROCEDURE [dbo].[sp_123]
	@MachineID int,
	@FIO varchar(max) = null
AS
begin
  set nocount on;
update t
set  FIO=@FIO
from dbo.T1 t
where MachineID=@MachineID
end
22 авг 12, 14:11    [13049252]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
denis2710
seeerg_23,
ALTER PROCEDURE [dbo].[sp_123]
	@MachineID int,
	@FIO varchar(max) = null
AS
begin
  set nocount on;
update t
set  FIO=@FIO
from dbo.T1 t
where MachineID=@MachineID
end


то же самое
1-дудкин
5-дудкин
а должно быть
1-дудкин
5-бубкин
22 авг 12, 14:17    [13049307]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
+ дело было не в бабине...

declare @MachineID int
, @FIO varchar(max)
	
declare @t table
  (
    MachineID int
  , FIO varchar(150)
  )
insert  into @t
        ( MachineID, FIO )
values  ( 1, '1111' )
	,     ( 2, '2222' )
	
set @MachineID = 2
set @FIO = 333

select  *
from    @t	

update  t
set     FIO = @FIO
from    @T t
where   MachineID = @MachineID


select  *
from    @t

22 авг 12, 14:24    [13049361]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
denis2710
+
+ дело было не в бабине...

declare @MachineID int
, @FIO varchar(max)
	
declare @t table
  (
    MachineID int
  , FIO varchar(150)
  )
insert  into @t
        ( MachineID, FIO )
values  ( 1, '1111' )
	,     ( 2, '2222' )
	
set @MachineID = 2
set @FIO = 333

select  *
from    @t	

update  t
set     FIO = @FIO
from    @T t
where   MachineID = @MachineID

select  *
from    @t



insert не подходит. мне нужно обновить. и я не пойму , почему не работает мой вариант
where (MachineID=@MachineID) and (FIO=@FIO)
@MachineID уже есть, равный 1 5 . ставлю 5.
@FIO - бубкин
я указал строку (ID=5), в которой сделать обновление 5- бубкин , почему обновляются все строки??
22 авг 12, 15:11    [13049799]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
Glory
Member

Откуда:
Сообщений: 104751
seeerg_23
очему не работает мой вариант
where (MachineID=@MachineID) and (FIO=@FIO)
@MachineID уже есть, равный 1 5 . ставлю 5.
@FIO - бубкин

И какая запись по-вашему подходит под критерий MachineID=5 and FIO='бубкин' ?
Разве такая запись есть в вашей таблице ?
22 авг 12, 15:17    [13049887]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
Glory
Member

Откуда:
Сообщений: 104751
seeerg_23
очему не работает мой вариант
where (MachineID=@MachineID) and (FIO=@FIO)
@MachineID уже есть, равный 1 5 . ставлю 5.
@FIO - бубкин

И какая запись по-вашему подходит под критерий MachineID=5 and FIO='бубкин' ?
Разве такая запись есть в вашей таблице ?
22 авг 12, 15:18    [13049888]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
seeerg_23
denis2710
++
+ дело было не в бабине...

declare @MachineID int
, @FIO varchar(max)
	
declare @t table
  (
    MachineID int
  , FIO varchar(150)
  )
insert  into @t
        ( MachineID, FIO )
values  ( 1, '1111' )
	,     ( 2, '2222' )
	
set @MachineID = 2
set @FIO = 333

select  *
from    @t	

update  t
set     FIO = @FIO
from    @T t
where   MachineID = @MachineID

select  *
from    @t



insert не подходит. мне нужно обновить. и я не пойму , почему не работает мой вариант
where (MachineID=@MachineID) and (FIO=@FIO)
@MachineID уже есть, равный 1 5 . ставлю 5.
@FIO - бубкин
я указал строку (ID=5), в которой сделать обновление 5- бубкин , почему обновляются все строки??
Где "указал"?
Вот тут: 13049194?
Там сначала неограниченный UPDATE написан, а потом SELECT с WHERE
Вы не видите что ли, что Вам FROM пишут прямо в UPDATE? И без всякого SELECT.
22 авг 12, 15:18    [13049891]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
seeerg_23
denis2710
++
+ дело было не в бабине...

declare @MachineID int
, @FIO varchar(max)
	
declare @t table
  (
    MachineID int
  , FIO varchar(150)
  )
insert  into @t
        ( MachineID, FIO )
values  ( 1, '1111' )
	,     ( 2, '2222' )
	
set @MachineID = 2
set @FIO = 333

select  *
from    @t	

update  t
set     FIO = @FIO
from    @T t
where   MachineID = @MachineID

select  *
from    @t



insert не подходит. мне нужно обновить. и я не пойму , почему не работает мой вариант
where (MachineID=@MachineID) and (FIO=@FIO)
@MachineID уже есть, равный 1 5 . ставлю 5.
@FIO - бубкин
я указал строку (ID=5), в которой сделать обновление 5- бубкин , почему обновляются все строки??


Какой insert?????????????
автор
почему не работает мой вариант

Не работает потому что не отрабатывает условие FIO=@FIO
автор
почему обновляются все строки

При таком условии MachineID=@MachineID and FIO=@FIO скорее всего ни одна запись не обновиться.
По-моему вы окончательно запутались в трех березах.
Вам нужно сделать банальный update set fio=@fio where ключ таблицы = @ключ таблицы
22 авг 12, 15:21    [13049921]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
denis2710
seeerg_23
пропущено...


insert не подходит. мне нужно обновить. и я не пойму , почему не работает мой вариант
where (MachineID=@MachineID) and (FIO=@FIO)
@MachineID уже есть, равный 1 5 . ставлю 5.
@FIO - бубкин
я указал строку (ID=5), в которой сделать обновление 5- бубкин , почему обновляются все строки??


Какой insert?????????????
автор
почему не работает мой вариант

Не работает потому что не отрабатывает условие FIO=@FIO
автор
почему обновляются все строки

При таком условии MachineID=@MachineID and FIO=@FIO скорее всего ни одна запись не обновиться.
По-моему вы окончательно запутались в трех березах.
Вам нужно сделать банальный update set fio=@fio where ключ таблицы = @ключ таблицы


запутался!! записи обновляются, но все. а надо только одну за 1 раз.
22 авг 12, 15:28    [13049987]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
nicescar
Member

Откуда:
Сообщений: 94
UPDATE таблица
SET поле1 = @переменная1
WHERE поле2= @переменная2
22 авг 12, 15:30    [13050010]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
спасибо, заработало. действительно не нужно в UPDATE писать select, from.
22 авг 12, 15:35    [13050051]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
seeerg_23
спасибо, заработало. действительно не нужно в UPDATE писать select, from.
Почему же???
FROM как раз надо!
22 авг 12, 15:41    [13050116]     Ответить | Цитировать Сообщить модератору
 Re: не записываются данные в табл  [new]
nicescar
Member

Откуда:
Сообщений: 94
iap
Почему же???
FROM как раз надо!

В данном случае совсем не обязательно.
22 авг 12, 15:49    [13050189]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить