Я работаю над проектом с использованием SqlSiteMapProvider.У меня есть две таблицы Articles и SiteMap
Таблица статей:
CREATE TABLE [dbuser].[Articles](
[ArticleId] [uniqueidentifier] NOT NULL,
[Title] [nvarchar](500) NULL,
[Description] [ntext] NULL,
[CategoryId] [int] NULL,
[pubDate] [datetime] NULL,
[Author] [nvarchar](255) NULL,
[Hit] [int] NULL,
[Auth] [bit] NULL
)...
И таблица SiteMap:
CREATE TABLE [dbuser].[SiteMap](
[ID] [int] IDENTITY(0,1) NOT NULL,
[Title] [nvarchar](50) NULL,
[Description] [nvarchar](512) NULL,
[Url] [nvarchar](512) NULL,
[Roles] [nvarchar](512) NULL,
[Parent] [int] NULL,
CONSTRAINT [PK_SiteMap] PRIMARY KEY CLUSTERED
(...
Когда я вставляю статью, моя страница asp.net также вставляетчто статьи url и такая информация в таблицу SiteMap.То, что я пытаюсь сделать, это когда я удаляю статью из моей таблицы статей (со страницы asp.net), связанную строку из таблицы SiteMap с триггером.
Моя страница asp.net вставляет информацию о статье в Sitmapтаблица в этом формате:
Dim SMUrl As String = "~/c.aspx?g=" & ddlCategoryId.SelectedValue & "&k=" & BaslikNo.ToString
Я имею в виду, что ни один столбец не совпадает точно в двух таблицах.
Мой триггер выглядит следующим образом:
USE [MyDB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET NOCOUNT ON
GO
SET ROWCOUNT 1
GO
ALTER TRIGGER [dbuser].[trig_SiteMaptenSil] ON [dbuser].[Articles]
AFTER DELETE
AS
BEGIN
DECLARE @AID UNIQUEIDENTIFIER, @ttl NVARCHAR,@CID INT
SELECT @AID=ArticleId, @ttl = Title, @CID=CategoryId FROM DELETED
IF EXISTS(SELECT * FROM dbuser.SiteMap WHERE Url = N'~/c.aspx?g=' + CONVERT(nvarchar(5), @CID) + N'&k=' + CONVERT(nvarchar(36), @AID))
BEGIN
DELETE FROM dbuser.SiteMap WHERE Url = N'~/c.aspx?g=' + CONVERT(nvarchar(5), @CID) + N'&k=' + CONVERT(nvarchar(36), @AID)
END
END
GO
Яс использованием SSMSE 2008 и версия моего удаленного сервера БД 8.0
Я получаю ошибку:
Строки не были удалены.Произошла ошибка при попытке удалить строку 1. Источник ошибки: Microsoft.VisualStudio.DataTools.Сообщение об ошибке: Обновленные или удаленные значения строки либо не делают строку уникальной, либо изменяют несколько строк (2 строки).Исправьте ошибки и попробуйте снова удалить строку или нажмите ESC, чтобы отменить изменения.
Можете ли вы помочь мне, как заставить это работать?Я искал это в течение нескольких дней .. Не могу найти решение для моего случая ...
Заранее спасибо