--CRUDろ襴渚碁り鍵 --SSMS Ctrl + T 襯 れ 麹 ク讌伎 語. /****** Object: StoredProcedure [dbo].[usp_createsql] Script Date: 2012-07-25 れ 10:59:10 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --crudろ襴渚碁り鍵 --ssms ctrl + t 襯 れ 麹 ク讌伎 語. ALTER proc [dbo].[usp_createsql] @sname varchar(255) --schema name , @tname varchar(255) --table name , @curd char(1) , @spyn tinyint = 1 as --exec usp_createsql 'ろる覈', '企覈', 'c' --exec usp_createsql 'ろる覈', '企覈', 'u' --exec usp_createsql 'ろる覈', '企覈', 'r' --exec usp_createsql 'ろる覈', '企覈', 'd' begin set concat_null_yields_null on set nocount on set statistics io off declare @maxno varchar(1024) select @maxno = cast(max(ordinal_position) as varchar) from information_schema.columns where table_name = @tname and table_schema = @sname if upper(@curd) = 'c' begin select sp from ( select 'create proc usp_' + case when @curd = 'c' then 'create' when @curd = 'r' then 'read' when @curd = 'u' then 'update' when @curd = 'd' then 'delete' end + '_' + @tname sp union all select case when ordinal_position = 1 then ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') else ','+ ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') end columnname from information_schema.columns where table_name = @tname and table_schema = @sname union all select 'as') t where @spyn = 1 union all select case when ordinal_position = 1 then 'insert ' + @sname + '.' + @tname + char(13) + '(' + char(13) + ' ' + column_name when ordinal_position = @maxno then ','+ ' ' + column_name + char(13) + ')' else ','+ ' ' + column_name end columnname from information_schema.columns where table_name = @tname and table_schema = @sname union all select case when ordinal_position = 1 then 'values' + char(13) + '(' + char(13) + ' ' + '@' + column_name when ordinal_position = @maxno then ','+ ' ' + '@' + column_name + char(13) + ')' else ','+ ' ' + '@' + column_name end columnname from information_schema.columns where table_name = @tname and table_schema = @sname end else if upper(@curd) = 'u' begin select sp from ( select 'create proc usp_' + case when @curd = 'c' then 'create' when @curd = 'r' then 'read' when @curd = 'u' then 'update' when @curd = 'd' then 'delete' end + '_' + @tname sp union all select case when ordinal_position = 1 then ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') else ','+ ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') end columnname from information_schema.columns where table_name = @tname and table_schema = @sname union all select 'as') t where @spyn = 1 union all select case when ordinal_position = 1 then 'update ' + @sname + '.' + @tname + char(13) + 'set ' + char(13) + ' ' + column_name + ' = @' + column_name else ','+ ' ' + column_name + ' = @' + column_name end columnname from information_schema.columns where table_name = @tname and table_schema = @sname union all select 'from ' + @sname + '.' + @tname end else if upper(@curd) = 'r' begin select sp from ( select 'create proc usp_' + case when @curd = 'c' then 'create' when @curd = 'r' then 'read' when @curd = 'u' then 'update' when @curd = 'd' then 'delete' end + '_' + @tname sp union all select case when ordinal_position = 1 then ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') else ','+ ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') end columnname from information_schema.columns where table_name = @tname and table_schema = @sname union all select 'as') t where @spyn = 1 union all select case when ordinal_position = 1 then 'select ' + char(13) + ' ' + column_name else ','+ ' ' + column_name end columnname from information_schema.columns where table_name = @tname and table_schema = @sname union all select 'from ' + @sname + '.' + @tname end else if upper(@curd) = 'd' begin select sp from ( select 'create proc usp_' + case when @curd = 'c' then 'create' when @curd = 'r' then 'read' when @curd = 'u' then 'update' when @curd = 'd' then 'delete' end + '_' + @tname sp union all select case when ordinal_position = 1 then ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') else ','+ ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') end columnname from information_schema.columns where table_name = @tname and table_schema = @sname union all select 'as') t where @spyn = 1 union all select 'delete ' + @sname + '.' + @tname + char(13) + 'from ' + @sname + '.' + @tname columnname union all select case when ordinal_position = 1 then 'where 1=1' + char(13) + 'and ' + column_name + ' = @' + column_name else 'and '+ column_name + ' = ' + '@' + column_name end columnname from information_schema.columns where table_name = @tname and table_schema = @sname end else begin select '覯: exec usp_createsql ''ろる覈'', ''企覈'', {''c'', ''u'', ''r'', ''d''}' end --覲 select case when ordinal_position = 1 then ' ' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') else ','+ ' ' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') end columnname from information_schema.columns where table_name = @tname and table_schema = @sname select case when ordinal_position = 1 then ' @' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') else ','+ ' ' + '@' + column_name + ' ' + data_type collate korean_wansung_ci_as + isnull('(' + cast(character_maximum_length as varchar) + ')', '') end columnname from information_schema.columns where table_name = @tname and table_schema = @sname select case when ordinal_position = 1 then ' convert(nvarchar(200), ' + case when data_type like '%date%' then 'convert(varchar, @' + column_name + ', 121)' else '@' + column_name end + ')' else '+ '','' + '+ 'convert(nvarchar(200), ' + case when data_type like '%date%' then 'convert(varchar, @' + column_name + ', 121)' else '@' + column_name end + ')' end columnname from information_schema.columns where table_name = @tname and table_schema = @sname end