重置参数值为缺省值
有一项目表,即为参数表,其中许多字段均设有缺省值。
现在想用户重置时,这些字段的值均Reset为字段预设的缺省值。
如:
我们可以从系统表INFORMATION_SCHEMA.COLUMNS来获取字段以及其一个属性。
SELECT [COLUMN_NAME], REPLACE(REPLACE([COLUMN_DEFAULT],'((',''),'))','') AS [COLUMN_DEFAULT] FROM INFORMATION_SCHEMA.COLUMNS WHERE [TABLE_SCHEMA] = 'dbo' AND [TABLE_NAME] = 'QueryParameter'
此时,我们想对这结果,呈现为另一种表现:
这样的的结果,就如同直接SELECT 表的结果一样:
表现形式一样,在前端绑定数据就没有什么问题了。
上面一系列操作,用户需要点击Reset之后,只是把缺省值绑定至相关的字段域中,还需要再进一步更新才能把数据表的数据改为缺省值。
还不如一步到位,用户操作重置之后,直接在数据库进行更新。
SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[usp_QueryParameter_Update_ResetfaultValue] ( @ParmKey [tinyint], @UpdatedBy NVARCHAR(30) ) AS BEGIN ;WITH q AS ( SELECT [COLUMN_NAME], REPLACE(REPLACE([COLUMN_DEFAULT],'((',''),'))','') AS [COLUMN_DEFAULT] FROM INFORMATION_SCHEMA.COLUMNS WHERE [TABLE_SCHEMA] = 'dbo' AND [TABLE_NAME] = 'QueryParameter' ) UPDATE [dbo].[QueryParameter] SET [DataRecord_Option] = q1.[COLUMN_DEFAULT], [DataRecords] = q2.[COLUMN_DEFAULT], [DropDown_Option] = q3.[COLUMN_DEFAULT], [DropDowns] = q4.[COLUMN_DEFAULT], [NON_Option] = q5.[COLUMN_DEFAULT], [NONs] = q6.[COLUMN_DEFAULT], [Search_Option] = q7.[COLUMN_DEFAULT], [Searchs] = q8.[COLUMN_DEFAULT], [DefaultValue] = q9.[COLUMN_DEFAULT], [UpdatedBy] = @UpdatedBy, [UpdatedDate] = CURRENT_TIMESTAMP FROM q AS q1,q AS q2,q AS q3,q AS q4,q AS q5,q AS q6,q AS q7,q AS q8,q AS q9 WHERE q1.[COLUMN_NAME] = N'DataRecord_Option' AND q2.[COLUMN_NAME] = N'DataRecords' AND q3.[COLUMN_NAME] = N'DropDown_Option' AND q4.[COLUMN_NAME] = N'DropDowns' AND q5.[COLUMN_NAME] = N'NON_Option' AND q6.[COLUMN_NAME] = N'NONs' AND q7.[COLUMN_NAME] = N'Search_Option' AND q8.[COLUMN_NAME] = N'Searchs' AND q9.[COLUMN_NAME] = N'DefaultValue' AND [ParmKey] = @ParmKey END