我遇到了一个困扰我的问题,包括动态设置和更新时间表以及语言相关设置的描述。
我有一个名为dbo.time_language的表,其中包含该语言的顺序(1,2,3),该国家的LCID(1031,1033,1036)和别名(德语,英语,法国)。
现在我想用day_desc_1,day_desc_2和day_desc_3来更新我的表dbo.time,依此类推月份,季度等等。
[Day] = CONVERT (CHAR(8),[Date],112)
,[Day_Desc_1] = NULL
,[Day_Desc_2] = NULL
,[Day_Marker] = NULL
,[Month] = DATEPART(MONTH, [Date])
,[Month_Desc_1] = NULL
,[Month_Desc_2] = NULL
,[Month_Marker] = NULL
,[Quarter] = DATEPART(QUARTER, [Date])
,[Quarter_Desc_1] = NULL
,[Quarter_Desc_2] = NULL
,[Quarter_Marker] = NULL
关键是,我想更新这些描述,导致dbo.time_language(1,2,3)的顺序,这应该像每个人都需要的那样可以订购。
答案 0 :(得分:0)
目前我正在尝试这个:
DECLARE @i INT = (SELECT MIN([htl_Desc]) FROM [dbo].[tbl_help_time_language])
DECLARE @j INT = (SELECT MAX([htl_Desc]) FROM [dbo].[tbl_help_time_language])
DECLARE @language NVARCHAR(50)
DECLARE @dateformat NVARCHAR(10)
WHILE @i < @j
BEGIN
--PRINT @i
SET @language = (SELECT [htl_alias] FROM [dbo].[tbl_help_time_language] WHERE [htl_Desc]=@i)
SET @dateformat = (SELECT [dateformat] FROM [dbo].[tbl_help_time_language] WHERE [htl_Desc]=@i)
SET LANGUAGE @language
SET DATEFORMAT @dateformat
UPDATE [dbo].[tbl_help_time] SET [Day_Desc_1] = 'get the right format and convert to leading country'
--PRINT @dateformat
--PRINT @i
SET @i = @i + 1
END
也许我可以到一个小的匹配表左右,但目前我不知道如何动态地做到这一点。