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

Откуда:
Сообщений: 41
Добрый вечер форумчане. Помогите пожалуйста со следующим вопросом.
у меня есть таблица lis_inv с полями id,nam_inv,inv_num,ser_num,type_inv,count_inv,price,sum_inv.
и таблица inv_ev с полями id,id_lis_inv,id_usr_post,id_usr_get,korp_post,korp_get,num_cab_post,num_cab_get,date_get,date_post.
не получается сделать такой запрос при котором при вводе данных в первую таблицу ее счетчик с номером отправлялся во вторую таблицу то есть id из первой таблицы записывалось в поле id_lis_inv
За ранее огромное спасибо:)
5 фев 14, 10:43    [15520831]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
user921227
не получается сделать такой запрос при котором при вводе данных в первую таблицу ее счетчик с номером отправлялся во вторую таблицу то есть id из первой таблицы записывалось в поле id_lis_inv

insert lis_inv ... output ... into inv_ev
5 фев 14, 10:46    [15520843]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31435
user921227
не получается сделать такой запрос при котором при вводе данных в первую таблицу ее счетчик с номером отправлялся во вторую таблицу
Запросом нельзя "отправлять данные в таблицу"

Вставка данных в таблицы делается командой INSERT

Потратьте побольше времени на формулировку задачи. Опишите таблицы, примеры данных, что нужно получить в итоге. Не ограничивайтесь одной длинной фразой.
5 фев 14, 10:48    [15520858]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
SET IDENTITY_INSERT dbo.lis_inv.id ON
INSERT dbo.lis_inv
OUTPUT INSERTED.id
INTO dbo.inv_ev
insert into dbo.lis_inv(nam_inv,inv_num,ser_num,type_inv,count_inv,price,sum_inv) values('Монитор', '122334','344556','Основные средства','45','500','22500');
INSERT dbo.lis_inv
OUTPUT INSERTED.id
INTO dbo.inv_ev(id_lis_inv,id_usr_post,id_usr_get,korp_post,korp_get,num_cab_post,num_cab_get,date_post,date_get)
values ('','23','','2','','301','','2014-11-26')

вот что получается и вот ошибка которая выводится
Сообщение 8101, уровень 16, состояние 1, строка 2
Значение столбца идентификаторов в таблице "dbo.lis_inv" может указываться явно только при использовании списка столбцов и когда IDENTITY_INSERT установлен в ON.
6 фев 14, 08:37    [15526165]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
есть три таблицы users(список пользователей), list_inv(справочник инвентаря), inv_ev(движение инвентаря) мысль такова пользователь авторизуется и начинает забивать в базу инвентарь помимо того что он вносит данные в справочик list_inv здесь же данные отправляются в таблицу inv_ev но поля отправителя инвентаря такие как дата отправления отправитель корпус кабинет отправителя остаются пустыми (так как отправителем является бухгалтерия и т.п.) затем будет еще кнопка перемещения инвентаря от одного пользователя к другому
6 фев 14, 09:03    [15526289]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
спасибо за ответы но я начинающий тяжело разбераюсь хотел бы более подробных ответов
6 фев 14, 09:04    [15526294]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
user921227
хотел бы более подробных ответов

Задайте более подробные вопросы
6 фев 14, 10:15    [15526719]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
почему выходит ошибка при формировании этого запроса
6 фев 14, 10:22    [15526763]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
user921227,
вот что получается и вот ошибка которая выводится
Сообщение 8101, уровень 16, состояние 1, строка 2
Значение столбца идентификаторов в таблице "dbo.lis_inv" может указываться явно только при использовании списка столбцов и когда IDENTITY_INSERT установлен в O
6 фев 14, 10:22    [15526770]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
user921227
почему выходит ошибка при формировании этого запроса

Потому что
Значение столбца идентификаторов в таблице "dbo.lis_inv" может указываться явно только при использовании списка столбцов и когда IDENTITY_INSERT установлен в ON.
6 фев 14, 10:23    [15526773]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
SQL Fiddle][1]

**MS SQL Server 2012 Schema Setup**:


/****** Object: Table [dbo].[inv_ev] Script Date: 06.02.2014 13:17:08 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[inv_ev](
[id] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[id_lis_inv] [numeric](18, 0) NOT NULL,
[id_usr_post] [int] NULL,
[id_usr_get] [int] NOT NULL,
[korp_post] [int] NULL,
[korp_get] [int] NOT NULL,
[num_cab_post] [int] NULL,
[num_cab_get] [int] NOT NULL,
[date_post] [date] NULL,
[date_get] [date] NOT NULL
) ON [PRIMARY]

GO
/****** Object: Table [dbo].[lis_inv] Script Date: 06.02.2014 13:15:23 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[lis_inv](
[id] [numeric](18, 0) IDENTITY(1,1) NOT NULL,
[nam_inv] [nvarchar](300) NOT NULL,
[inv_num] [int] NOT NULL,
[ser_num] [int] NOT NULL,
[type_inv] [nvarchar](50) NOT NULL,
[count_inv] [int] NOT NULL,
[price] [int] NOT NULL,
[sum_inv] [int] NOT NULL
) ON [PRIMARY]
6 фев 14, 11:20    [15527127]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
мне нужно с полем id_lis_inv что нибудь сделать ? что бы этой ошибки не было
6 фев 14, 11:25    [15527158]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
user921227
мне нужно с полем id_lis_inv что нибудь сделать ? что бы этой ошибки не было

Не нужно
6 фев 14, 11:27    [15527169]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
user921227
мне нужно с полем id_lis_inv что нибудь сделать ? что бы этой ошибки не было


да напишите вы уже:

INSERT dbo.lis_inv (СПИСОК ПОЛЕЙ)
6 фев 14, 11:29    [15527182]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
http://sqlfiddle.com/#!6/832c7/2/0
6 фев 14, 11:32    [15527200]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
user921227
http://sqlfiddle.com/#!6/832c7/2/0

И долго вы собираетесь постить одно и тоже сообщение об ошибке ?
6 фев 14, 11:33    [15527203]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
пожалуйста помогите решить эту проблему и поподробнее где что я ни так делаю
6 фев 14, 11:41    [15527250]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
user921227
пожалуйста помогите решить эту проблему и поподробнее где что я ни так делаю

1. Вы зачем то пытаетесь добавить значение в поле IDENTITY.
Зачем вы это делаете, только вы и знаете

2. Вам уже сказали, что надо указывайте список полей для каждой(!) инструкции INSERT

3. OUTPUT INSERTED.id
INTO dbo.inv_ev(id_lis_inv,id_usr_post,id_usr_get,korp_post,korp_get,num_cab_post,num_cab_get,date_post,date_get)

как вы тут собрались одно поле INSERTED.id добавить в десяток других полей опять же только вам известно

4. Научитесь сначала простой одиночный INSERT составлять. Почему каждый "но я начинающий тяжело разбераюсь" сразу пытается разбираться с сложных запросов, а не с простых ?
6 фев 14, 11:47    [15527297]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
user921227
пожалуйста помогите решить эту проблему и поподробнее где что я ни так делаю


insert into dbo.lis_inv( список полей ) 
output inserted.id, список значений  
into dbo.inv_ev( список полей )
values( список значений );
6 фев 14, 11:47    [15527298]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
спасибо за ответы но разобраться так и не смог пошел по другому пути при помощи select
7 фев 14, 11:12    [15533046]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
можно еще вопрос как сделать чтобы работал он чет не работает select from .... order by ... desc limit 1
7 фев 14, 11:16    [15533062]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
TOP (1)
7 фев 14, 11:27    [15533157]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
спасибо получилось
7 фев 14, 11:49    [15533349]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
user921227
Member

Откуда:
Сообщений: 41
как можно сделать чтобы insert into values забивал данные по выбранному id заранее спасибо
7 фев 14, 11:53    [15533381]     Ответить | Цитировать Сообщить модератору
 Re: sql запрос  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
where id = ваш ид
7 фев 14, 11:58    [15533426]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить