Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SELECT из неизвестной таблицы, Function Transact-Sql 
:(
    Опции темы
PaZ1T1V
Дата 14.2.2010, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 26.2.2008
Где: Багдад )

Репутация: нет
Всего: нет



Пытаюсь создать функцию в MS SQL server 
Код

ALTER FUNCTION dbo.GetID
(
    @myTableVar Varchar(10),
        @myFieldVar Varchar(10)
)
    
RETURNS int
AS BEGIN
    DECLARE @tmp int
    SET @tmp = (SELECT MAX(@myFieldVar) from @myTableVar)
    RETURN @tmp
END


Что сие значит? - достать максимальное значение из какого то столбца, входящего как параметр, какой то таблицы, тоже, ВХОДЯЩЕЙ КАК ПАРАМЕТР... но что то оно так не хочет работать, пишет ошибку "Must declare the table variable @myTableVar " 
подскажите пожалуйста, как с этими бороться ???


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

ALTER FUNCTION dbo.GetID
(
    @myTableVar Varchar(10),
    @myFieldVar Varchar(10)
)
    
RETURNS int
AS BEGIN
    DECLARE @maxID int
    DECLARE @query varchar(200)
    SET @query = 'select ' + @myFieldVar + ' from ' + @myTableVar
    SET @maxID = NULL
    exec @maxID = @query
    RETURN @maxID
END




ЗЫ просьба не пинать за нарушение правила "один топик - один вопрос"
ЗЗЫ за любую помощь буду благодарен!


мдааа, вот такая конструкция exec @maxID = @query не прокатит, то есть, мне надо запихнуть результат выполнения запроса в переменную типа int, как это сделать? кто нибудь знает ??? Заранее спасибо 

Это сообщение отредактировал(а) PaZ1T1V - 15.2.2010, 15:18
--------------------
[size=8]Atention please!!![/size]
[size=6]Кривые руки[/size]
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
PaZ1T1V
Дата 16.2.2010, 06:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 26.2.2008
Где: Багдад )

Репутация: нет
Всего: нет



ни у кого нет желания помочь ??? 
--------------------
[size=8]Atention please!!![/size]
[size=6]Кривые руки[/size]
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
kobra
Дата 16.2.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 730
Регистрация: 15.6.2005
Где: Грузия, Тбилиси

Репутация: 1
Всего: 9



причем тут Базы данных под .NET? и почему думаеш что здес на этот вопрос будут отвечать?
тема для раздела  Базы данных -> MS SQL Server
Код

CREATE FUNCTION dbo.GetMaxID
(
    @myTableVar Varchar(10),
    @myFieldVar Varchar(10)
)
RETURNS TABLE
AS
BEGIN
    DECLARE @query nvarchar(max)
    SET @query = 'select max(' + @myFieldVar + ') from ' + @myTableVar
    exec (@query)
END


PM MAIL   Вверх
PaZ1T1V
Дата 16.2.2010, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 169
Регистрация: 26.2.2008
Где: Багдад )

Репутация: нет
Всего: нет



Спасибо большое, учту на будущее что все вопросы по SQL надо задавать не здесь, спасибо еще и за помощь smile) Работает!
--------------------
[size=8]Atention please!!![/size]
[size=6]Кривые руки[/size]
PM MAIL WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0435 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.