DataDict

出自ProgWiki

跳轉到: 導航, 搜尋

目錄

用途

Table定義

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[DataDict](
	[ID] [INT] IDENTITY(1,1) NOT NULL,
	[DataName] [NVARCHAR](16) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL,
	[DataValue] [NVARCHAR](32) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL,
	[Description] [NVARCHAR](64) COLLATE Chinese_Taiwan_Stroke_CI_AS NULL,
	[ParentID] [INT] NOT NULL
) ON [PRIMARY]

SetDataDict

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROC [dbo].[SetDataDict] (
	@ID AS INT
	,@DataName AS NVARCHAR(16)
	,@DataValue AS NVARCHAR(32)
	,@Description AS NVARCHAR(64)
	,@ParentID AS INT
) AS
BEGIN
	DECLARE @nCount AS INT;
	IF (@ID=0)
		BEGIN
			SELECT @nCount=COUNT(*)
				FROM DataDict
				WHERE ParentID=@ParentID
				AND DataName=@DataName;
		END
	ELSE
		BEGIN
			SELECT @nCount=COUNT(*) FROM DataDict WHERE ID=@ID;
		END
 
	IF (@nCount=0)
		BEGIN
			INSERT INTO DataDict
				(DataName, DataValue, Description, ParentID)
			VALUES
				(@DataName, @DataValue, @Description, @ParentID);
		END
	ELSE
		BEGIN
			IF (@ID=0)
				BEGIN
					UPDATE DataDict
						SET DataName = @DataName
							,DataValue = @DataValue
							,Description = @Description
							,ParentID = @ParentID
						WHERE ParentID=@ParentID
						AND DataName=@DataName;
				END
			ELSE
				BEGIN
					UPDATE DataDict
						SET DataName = @DataName
							,DataValue = @DataValue
							,Description = @Description
							,ParentID = @ParentID
						WHERE ID=@ID;
				END
		END
END

ListDataDict

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
CREATE FUNCTION [dbo].[ListDataDict]
(	
	@ParentID AS INT
)
RETURNS TABLE 
AS
RETURN 
(
	SELECT *
		FROM DataDict
		WHERE ParentID=@ParentID
)
GO

FindDataDictID

FindDataDictID_ByDataName

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
CREATE FUNCTION [dbo].[FindDataDictID_ByDataName]
(
	@ParentID AS INT
	,@DataName AS NVARCHAR(16)
)
RETURNS INT
AS
BEGIN
	DECLARE @ResultVar AS INT;
	SET @ResultVar = 0
 
	SELECT @ResultVar = ID
		FROM DataDict
		WHERE ParentID=@ParentID
		and DataName=@DataName;
 
	RETURN @ResultVar;
END
GO

FindDataDictID_ByDataValue

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
CREATE FUNCTION [dbo].[FindDataDictID_ByDataValue]
(
	@ParentID AS INT
	,@DataValue AS NVARCHAR(32)
)
RETURNS INT
AS
BEGIN
	DECLARE @ResultVar AS INT;
	SET @ResultVar = 0
 
	SELECT @ResultVar = ID
		FROM DataDict
		WHERE ParentID=@ParentID
		and DataValue=@DataValue;
 
	RETURN @ResultVar;
END
GO
個人工具
名字空間
變換
動作
導航
分類
其他
技術類News或部落格
工具箱