Дублирующаяся запись '*' по ключу 'Parent'Уберите уникальность у этого ключа.
CAST( DATEDIFF( Year, BirthDay, ISNULL( DeathDay, GETDATE())) + ( SIGN ( DATEDIFF ( DAY, BirthDay, DATEADD ( YEAR, YEAR( BirthDay ) - YEAR( ISNULL( DeathDay, GETDATE()) ), ISNULL( DeathDay, GETDATE())))) - 1 ) / 2 AS VARCHAR)
Как сохранить несколько значение в переменную?Для MS SQL можно использовать функции работы со списками. STRING_SPLIT (Transact-SQL) и STRING_AGG (Transact-SQL).
DECLARE @Role TABLE(Role VARCHAR(100))
INSERT INTO @Role SELECT TRIM( value ) FROM STRING_SPLIT( @RLR, ',' )
INSERT INTO @Role SELECT TRIM( value ) FROM STRING_SPLIT( @ROL, ',' )
WHERE TRIM( value ) NOT IN ( SELECT [Role] FROM @Role )
DELETE @Role WHERE (TRIM( [Role] ) = '')
SELECT @RLR = STRING_AGG ( [Role], ', ' ) FROM @Role
Но интересует именно как в другую БД вставлять.Перед именем таблицы поставьте название БД. Естественно пользователь должен иметь нужные права.
INSERT INTO Gamege.dbo.TestTable (f1)
VALUES ('test')
SELECT @val = (SELECT val FROM inserted)Грубая ошибка. В inserted (таблица) находится не одна запись. Нужно использовать либо курсор, либо соединение таблиц.
А как с курсором это будет выглядеть?
CREATE TRIGGER AlbumRoleInsert ON AlbumRole INSTEAD OF INSERT AS
BEGIN
DECLARE @ALB INT, @PRF INT, @ROL VARCHAR(500), @mas INT, @pla BIT, @mem BIT, @gue BIT
DECLARE @ID INT, @RLR VARCHAR(500)
DECLARE LISTROLE CURSOR LOCAL FAST_FORWARD FOR
SELECT Album, Master, Performer, Play, Member, Role, SpecialGuest
FROM Inserted
OPEN LISTROLE
FETCH LISTROLE INTO @ALB, @mas, @PRF, @pla, @mem, @ROL, @gue
WHILE @@FETCH_STATUS = 0 BEGIN
-- Есть запись?
IF EXISTS( SELECT * FROM AlbumRole WHERE (Album = @ALB) AND (Performer = @PRF)) BEGIN
SELECT @ID = ID, @RLR = Role FROM AlbumRole WHERE (Album = @ALB) AND (Performer = @PRF)
-- Есть роль?
IF ( CHARINDEX( @ROL, @RLR) = 0 ) SET @RLR = @RLR + ', ' + @ROL
IF ( @RLR IS NULL ) SET @RLR = @ROL
-- Обновление списка.
UPDATE AlbumRole SET Role = @RLR WHERE ID = @ID
END ELSE BEGIN
-- Добавление:
INSERT INTO AlbumRole ( Album, Master, Performer, Play, Member, Role, SpecialGuest )
VALUES( @ALB, @mas, @PRF, @pla, @mem, @ROL, @gue )
END
-- Следующее поле
FETCH LISTROLE INTO @ALB, @mas, @PRF, @pla, @mem, @ROL, @gue
END
CLOSE LISTROLE
DEALLOCATE LISTROLE
END
--
GO
Существует ли библиотека или апи работы с несколькими мониторами?Да, драйвер видео-карты в Windows.
Поэтому я и задал такой вопрос, так как банально не знаю, как еще могу реализовать, чтобы файл был в нескольких категориях одновременно и спокойно искался по базе.У вас проблема с СУБД. Она не поддерживает операции со списками: STRING_SPLIT (Transact-SQL).