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

Откуда: Пиндырдышханда
Сообщений: 948
Как объявить что-то типа таблицы с параметрами?

типа
селест *
Фром таблица(параметры)

+ можно ещё сделать, чтобы при этом обращении выполнялась какая-нибудъ DML инстукция типа апдэйта ?
---------------------------------------------------------
SET @@verSION = 'Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Workgroup Edition on Windows NT 5.2 (Build 3790: Service Pack 1) '
2 ноя 09, 16:20    [7872207]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Glory
Member

Откуда:
Сообщений: 104760
таблица с параметрами называется tablevalued user-defined function

А логирование селектов надо вести через размещение этих селектов в процедурах
2 ноя 09, 16:27    [7872288]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Erik_Kartmann
Member

Откуда: Пиндырдышханда
Сообщений: 948
А можно ли из процедуры как-нибудъ вернуть динамическую таблицу?
очень нужно что-то всё в одном теле чтоб выполнилось
---------------------------------------------------------
SET @@verSION = 'Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86) Oct 14 2005 00:33:37 Copyright (c) 1988-2005 Microsoft Corporation Workgroup Edition on Windows NT 5.2 (Build 3790: Service Pack 1) '
2 ноя 09, 16:33    [7872337]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Glory
Member

Откуда:
Сообщений: 104760
Процедура возвращает все, что в ней написать
А что за такая динамическая таблица ?
2 ноя 09, 16:36    [7872356]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Автор, а что такое динамическая таблица?
2 ноя 09, 16:36    [7872357]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Erik_Kartmann
Member

Откуда: Пиндырдышханда
Сообщений: 948
Create Procedure [dbo].[Dispetcher_DateRTI_Close]
As
declare @t table (int i)
//какой-нибудъ апдэйт

insert @t
Select 0
union
Select 1

Return @t


автор
Must declare the scalar variable "@t".



---------------------------------------------------------
SET @@verSION = 'Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 6.0 (Build 6002: Service Pack 2) '
2 ноя 09, 17:10    [7872632]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Glory
Member

Откуда:
Сообщений: 104760
Мда уж.

Create Procedure [dbo].[Dispetcher_DateRTI_Close]
As
declare @t table (int i)
set nocount on
//какой-нибудъ апдэйт

insert @t
Select 0
union
Select 1

select * from @t
2 ноя 09, 17:13    [7872658]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31170
Erik_Kartmann
Return @t

Must declare the scalar variable "@t".
Замените на select * from @t
2 ноя 09, 17:14    [7872674]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Erik_Kartmann
declare @t table (int i)
declare @t table (i int)
?
2 ноя 09, 17:15    [7872686]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Erik_Kartmann
Member

Откуда: Пиндырдышханда
Сообщений: 948
ну да.. ну да.. с руки писал образно!
2 ноя 09, 17:22    [7872756]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Erik_Kartmann
Member

Откуда: Пиндырдышханда
Сообщений: 948
А как селектом к этой процедуре обраиться ?
что-то типа
селект *
Фром процедура вот ета
, и чтобы @t вернулось, которое в этой процедуре ?
---------------------------------------------------------
SET @@verSION = 'Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 6.0 (Build 6002: Service Pack 2) '
2 ноя 09, 17:32    [7872854]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Select из результата выполнения хранимой процедуры
2 ноя 09, 17:34    [7872883]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Erik_Kartmann
Member

Откуда: Пиндырдышханда
Сообщений: 948
USE [KRBTI]
GO
/****** Объект:  Table [dbo].[Table_1]    Дата сценария: 11/02/2009 18:02:42 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[Table_1](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[name] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

GO
SET ANSI_PADDING OFF
создал таблицу.
Допустим я хочу при селекте выполнить ДМЛ инструкцию инсёрт этой таблицы.
создаю функцию
alter function dbo.dataset ()
returns @t table (i int )
 as begin

insert into Table_1
Select convert(varchar(50),getDAte(),102)

insert @t
Select 0
union 
Select 1
return

end
go

автор
Invalid use of side-effecting or time-dependent operator in 'INSERT' within a function.

---------------------------------------------------------
SET @@verSION = 'Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86) Feb 9 2007 22:47:07 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 6.0 (Build 6002: Service Pack 2) '
2 ноя 09, 18:05    [7873150]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Taffy
Member

Откуда:
Сообщений: 20498
Вам же сказали - процедуру, а не функцию.
2 ноя 09, 18:31    [7873317]     Ответить | Цитировать Сообщить модератору
 Re: вернуть таблицу + выполнить update  [new]
Maxx
Member [скрыт]

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

читаем про ограничения в UDF
2 ноя 09, 18:32    [7873322]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить