File
、およびの 3 つのテーブルがWord
ありWordInstance
ます。
CREATE TABLE [dbo].[File](
[FileId] [int] IDENTITY(1,1) NOT NULL,
[FileName] [nchar](10) NOT NULL)
CREATE TABLE [dbo].[Word](
[WordId] [int] IDENTITY(1,1) NOT NULL,
[Word] [nchar](10) NOT NULL,
[LatestFileId] [int] NOT NULL)
CREATE TABLE [dbo].[WordInstance](
[WordInstanceId] [int] IDENTITY(1,1) NOT NULL,
[WordId] [int] NOT NULL,
[FileId] [int] NOT NULL)
簡潔にするために外部キーを省略していることに注意してください。を指定FileId
すると、指定されFileId
た .
これから始めて、私はそれが機能していないことを知っていますが、そのまま提供されます:
CREATE FUNCTION [dbo].[DoesFileContainLastWord]
(
@fileId INT
)
RETURNS BIT
AS
BEGIN
DECLARE @count INT
DECLARE @ret BIT
SELECT @count = COUNT([tW].[WordId])
FROM [Word] AS tW
INNER JOIN [WordInstance] AS tWI
ON [tW].[WordId] = [tWI].[WordId]
INNER JOIN [File] AS tF
ON [tF].[FileId] = [tW].[LatestFileId]
WHERE [tF].[FileId] = @fileId
IF @count > 0
BEGIN
SET @ret = 0
END
ELSE
SET @ret = 1
RETURN @ret
END;