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

Откуда:
Сообщений: 7
Добрый день уважаемые пользователи форумы, я прошу помочь мне в решении возникшей проблемы, то есть, у меня установлен SQL Server 2008, в котором две базы, идентичных друг другу, но разных по названию. Я хочу из одной базы экспортировать данные колонки в другую Clinc2.17->Clinic3, но у меня это почему то не получается, то есть возвращается только значение
USE [Clinic3]
GO

DECLARE	@return_value int

EXEC	@return_value = [dbo].[CardChangen]
		@IllnessCharacterID = NULL,
		@Card_ID = NULL

SELECT	'Return Value' = @return_value

GO

может я что то не понимаю, но как можно реализовать эту процедуру. Помогите.
USE Clinic3
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[CardChangen] 
    ( 
     @IllnessCharacterID nvarchar(MAX)
    ,@Card_ID nvarchar(MAX)
    ) 
AS   
BEGIN
DECLARE @ID_IllnessCharacter INT
DECLARE @ID_Card INT
SELECT @ID_Card = [Clinic2.17].[dbo].[Card].[CardID] FROM [Clinic2.17].[dbo].[Card] WHERE [Clinic2.17].[dbo].[Card].IllnessCharacterID_Ref=@IllnessCharacterID
UPDATE [Clinic3].[dbo].[Card] SET [Clinic3].[dbo].[Card].[IllnessCharacterID_Ref] = @IllnessCharacterID WHERE [Clinic3].[dbo].[Card].[CardID]=@ID_Card
END
27 окт 12, 20:49    [13385640]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Edkonst2008
Member

Откуда:
Сообщений: 503
Сергей Д,

У Вас в условии какое-то число с null сравнивается.
27 окт 12, 21:43    [13385772]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Сергей Д
Member

Откуда:
Сообщений: 7
Edkonst2008
Сергей Д,

У Вас в условии какое-то число с null сравнивается.

ЗДЕСЬ SET ANSI_NULLS ON, ЭТО ПРОСТО ЗНАЧЕНИЕ ANSI_NULLS ВКЛЮЧАЮТСЯ В УСЛОВИЕ
27 окт 12, 21:52    [13385789]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Сергей Д
Member

Откуда:
Сообщений: 7
Сейчас уже пишет это Procedure or function 'CardChangen' expects parameter '@Card_ID', which was not supplied
27 окт 12, 21:55    [13385797]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Сергей Д
Сейчас уже пишет это Procedure or function 'CardChangen' expects parameter '@Card_ID', which was not supplied
Ну так supply этот параметр.
27 окт 12, 22:20    [13385849]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Сергей Д
Member

Откуда:
Сообщений: 7
Гавриленко Сергей Алексеевич
Сергей Д
Сейчас уже пишет это Procedure or function 'CardChangen' expects parameter '@Card_ID', which was not supplied
Ну так supply этот параметр.

То есть, он же указан
27 окт 12, 22:24    [13385865]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Сергей Д
Гавриленко Сергей Алексеевич
пропущено...
Ну так supply этот параметр.

То есть, он же указан
А вот сервер считает по-другому.
27 окт 12, 22:26    [13385868]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Сергей Д
Member

Откуда:
Сообщений: 7
А почему он так счел, можно объяснить
27 окт 12, 22:32    [13385879]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
defragmentator
Member

Откуда:
Сообщений: 20504
Какая трогательная проблема.
Вы хоть понимаете, что Ваша процедура ничего никуда не экспортирует?
28 окт 12, 10:13    [13386583]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Сергей Д
Member

Откуда:
Сообщений: 7
defragmentator
Какая трогательная проблема.
Вы хоть понимаете, что Ваша процедура ничего никуда не экспортирует?

Да я подправил процедуру
USE Clinic3
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE [dbo].[CardChangen] 
( 
     @IllnessCharacter_ID nvarchar(MAX)
    )
AS   
BEGIN
DECLARE @ID_IllnessCharacter INT
DECLARE @ID_Card INT
SET @ID_Card = 4
SET @ID_IllnessCharacter = 0 
WHILE @ID_Card < 132
BEGIN
SET @ID_Card:= @ID_Card + 1
SELECT [Clinic2.17].[dbo].[Card].[CardID] ,[Clinic2.17].[dbo].[Card].[IllnessCharacterID_Ref] FROM [Clinic2.17].[dbo].[Card] WHERE [Clinic2.17].[dbo].[Card].[IllnessCharacterID_Ref] = @IllnessCharacter_ID AND [Clinic2.17].[dbo].[Card].[CardID] = @Card_ID
UPDATE [Clinic3].[dbo].[Card] SET [Clinic3].[dbo].[Card].[IllnessCharacterID_Ref] = @IllnessCharacter_ID WHERE [Clinic3].[dbo].[Card].[CardID]=@ID_Card
END
END

теперь ошибка такого плана
The transaction ended in the trigger. The batch has been aborted.
28 окт 12, 13:25    [13386864]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Не завершайте транзакции в триггере. Чего не понятного-то?
28 окт 12, 13:30    [13386880]     Ответить | Цитировать Сообщить модератору
 Re: Обновление значение таблици  [new]
Сергей Д
Member

Откуда:
Сообщений: 7
Гавриленко Сергей Алексеевич
Не завершайте транзакции в триггере. Чего не понятного-то?

я так понимаю это скорей всего из-за
 @ID_IllnessCharacter = 0  
28 окт 12, 13:41    [13386896]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить