There is no automatic way to generate the scripts. It must be done by hand.
Actually, it is probably not that hard to create such a generation script. Here is something that I just wrote that may help:
declare @VIEW_NAME nvarchar(50);
declare @CONTROL_INDEX int;
declare @CONTROL_TYPE nvarchar(25);
declare @MODULE_NAME nvarchar(25);
declare @MODULE_ACCESS_TYPE nvarchar(100);
declare @TARGET_NAME nvarchar(25);
declare @TARGET_ACCESS_TYPE nvarchar(100);
declare @CONTROL_TEXT nvarchar(150);
declare @CONTROL_TOOLTIP nvarchar(150);
declare @CONTROL_ACCESSKEY nvarchar(150);
declare @CONTROL_CSSCLASS nvarchar(50);
declare @TEXT_FIELD nvarchar(200);
declare @ARGUMENT_FIELD nvarchar(200);
declare @COMMAND_NAME nvarchar(50);
declare @URL_FORMAT nvarchar(255);
declare @URL_TARGET nvarchar(20);
declare @ONCLICK_SCRIPT nvarchar(255);
declare @MOBILE_ONLY bit;
declare @ADMIN_ONLY bit;
declare @INSERT_STMT nvarchar(4000);
declare @MAX_VIEW_NAME int;
declare @MAX_CONTROL_TYPE int;
declare @MAX_MODULE_NAME int;
declare @MAX_MODULE_ACCESS_TYPE int;
declare @MAX_TARGET_NAME int;
declare @MAX_TARGET_ACCESS_TYPE int;
declare @MAX_CONTROL_TEXT int;
declare @MAX_CONTROL_TOOLTIP int;
declare @MAX_CONTROL_ACCESSKEY int;
declare @MAX_CONTROL_CSSCLASS int;
declare @MAX_TEXT_FIELD int;
declare @MAX_ARGUMENT_FIELD int;
declare @MAX_COMMAND_NAME int;
declare @MAX_URL_FORMAT int;
declare @MAX_URL_TARGET int;
declare @MAX_ONCLICK_SCRIPT int;
declare button_cursor cursor for
select VIEW_NAME
, CONTROL_INDEX
, CONTROL_TYPE
, MODULE_NAME
, MODULE_ACCESS_TYPE
, TARGET_NAME
, TARGET_ACCESS_TYPE
, CONTROL_TEXT
, CONTROL_TOOLTIP
, CONTROL_ACCESSKEY
, CONTROL_CSSCLASS
, TEXT_FIELD
, ARGUMENT_FIELD
, COMMAND_NAME
, URL_FORMAT
, URL_TARGET
, ONCLICK_SCRIPT
, MOBILE_ONLY
, ADMIN_ONLY
from vwDYNAMIC_BUTTONS
order by VIEW_NAME, CONTROL_INDEX;
select @MAX_VIEW_NAME = max(len(isnull(VIEW_NAME , 0))) + 1
, @MAX_CONTROL_TYPE = max(len(isnull(CONTROL_TYPE , 0))) + 1
, @MAX_MODULE_NAME = max(len(isnull(MODULE_NAME , 0))) + 1
, @MAX_MODULE_ACCESS_TYPE = max(len(isnull(MODULE_ACCESS_TYPE, 0))) + 1
, @MAX_TARGET_NAME = max(len(isnull(TARGET_NAME , 0))) + 1
, @MAX_TARGET_ACCESS_TYPE = max(len(isnull(TARGET_ACCESS_TYPE, 0))) + 1
, @MAX_CONTROL_TEXT = max(len(isnull(CONTROL_TEXT , 0))) + 1
, @MAX_CONTROL_TOOLTIP = max(len(isnull(CONTROL_TOOLTIP , 0))) + 1
, @MAX_CONTROL_ACCESSKEY = max(len(isnull(CONTROL_ACCESSKEY , 0))) + 1
, @MAX_CONTROL_CSSCLASS = max(len(isnull(CONTROL_CSSCLASS , 0))) + 1
, @MAX_TEXT_FIELD = max(len(isnull(TEXT_FIELD , 0))) + 1
, @MAX_ARGUMENT_FIELD = max(len(isnull(ARGUMENT_FIELD , 0))) + 1
, @MAX_COMMAND_NAME = max(len(isnull(COMMAND_NAME , 0))) + 1
, @MAX_URL_FORMAT = max(len(isnull(URL_FORMAT , 0))) + 1
, @MAX_URL_TARGET = max(len(isnull(URL_TARGET , 0))) + 1
, @MAX_ONCLICK_SCRIPT = max(len(isnull(ONCLICK_SCRIPT , 0))) + 1
from vwDYNAMIC_BUTTONS;
open button_cursor;
fetch next from button_cursor into @VIEW_NAME, @CONTROL_INDEX, @CONTROL_TYPE, @MODULE_NAME, @MODULE_ACCESS_TYPE, @TARGET_NAME, @TARGET_ACCESS_TYPE, @CONTROL_TEXT, @CONTROL_TOOLTIP, @CONTROL_ACCESSKEY, @CONTROL_CSSCLASS, @TEXT_FIELD, @ARGUMENT_FIELD, @COMMAND_NAME, @URL_FORMAT, @URL_TARGET, @ONCLICK_SCRIPT, @MOBILE_ONLY, @ADMIN_ONLY;
while @@FETCH_STATUS = 0 begin -- do
set @INSERT_STMT = 'exec dbo.spDYNAMIC_BUTTONS_InsertOnly ';
set @INSERT_STMT = @INSERT_STMT + '''' + @VIEW_NAME + '''' + space(@MAX_VIEW_NAME - len(@VIEW_NAME)) ;
if @CONTROL_INDEX is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null';
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + cast(@CONTROL_INDEX as varchar(10)) + '''';
end -- if;
if @CONTROL_TYPE is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_CONTROL_TYPE - 4);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@CONTROL_TYPE, '''', '''''') + '''' + space(@MAX_CONTROL_TYPE - len(@CONTROL_TYPE));
end -- if;
if @MODULE_NAME is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_MODULE_NAME - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@MODULE_NAME, '''', '''''') + '''' + space(@MAX_MODULE_NAME - len(@MODULE_NAME));
end -- if;
if @MODULE_ACCESS_TYPE is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_MODULE_ACCESS_TYPE - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@MODULE_ACCESS_TYPE, '''', '''''') + '''' + space(@MAX_MODULE_ACCESS_TYPE - len(@MODULE_ACCESS_TYPE));
end -- if;
if @TARGET_NAME is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_TARGET_NAME - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@TARGET_NAME, '''', '''''') + '''' + space(@MAX_TARGET_NAME - len(@TARGET_NAME));
end -- if;
if @TARGET_ACCESS_TYPE is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_TARGET_ACCESS_TYPE - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@TARGET_ACCESS_TYPE, '''', '''''') + '''' + space(@MAX_TARGET_ACCESS_TYPE - len(@TARGET_ACCESS_TYPE));
end -- if;
if @CONTROL_TEXT is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_CONTROL_TEXT - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@CONTROL_TEXT, '''', '''''') + '''' + space(@MAX_CONTROL_TEXT - len(@CONTROL_TEXT));
end -- if;
if @CONTROL_TOOLTIP is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_CONTROL_TOOLTIP - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@CONTROL_TOOLTIP, '''', '''''') + '''' + space(@MAX_CONTROL_TOOLTIP - len(@CONTROL_TOOLTIP));
end -- if;
if @CONTROL_ACCESSKEY is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_CONTROL_ACCESSKEY - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@CONTROL_ACCESSKEY, '''', '''''') + '''' + space(@MAX_CONTROL_ACCESSKEY - len(@CONTROL_ACCESSKEY));
end -- if;
if @CONTROL_CSSCLASS is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_CONTROL_CSSCLASS - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@CONTROL_CSSCLASS, '''', '''''') + '''' + space(@MAX_CONTROL_CSSCLASS - len(@CONTROL_CSSCLASS));
end -- if;
if @TEXT_FIELD is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_TEXT_FIELD - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@TEXT_FIELD, '''', '''''') + '''' + space(@MAX_TEXT_FIELD - len(@TEXT_FIELD));
end -- if;
if @ARGUMENT_FIELD is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_ARGUMENT_FIELD - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@ARGUMENT_FIELD, '''', '''''') + '''' + space(@MAX_ARGUMENT_FIELD - len(@ARGUMENT_FIELD));
end -- if;
if @COMMAND_NAME is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_COMMAND_NAME - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@COMMAND_NAME, '''', '''''') + '''' + space(@MAX_COMMAND_NAME - len(@COMMAND_NAME));
end -- if;
if @URL_FORMAT is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_URL_FORMAT - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@URL_FORMAT, '''', '''''') + '''' + space(@MAX_URL_FORMAT - len(@URL_FORMAT));
end -- if;
if @URL_TARGET is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_URL_TARGET - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@URL_TARGET, '''', '''''') + '''' + space(@MAX_URL_TARGET - len(@URL_TARGET));
end -- if;
if @ONCLICK_SCRIPT is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null' + space(@MAX_ONCLICK_SCRIPT - 4 + 2);
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + replace(@ONCLICK_SCRIPT, '''', '''''') + '''' + space(@MAX_ONCLICK_SCRIPT - len(@ONCLICK_SCRIPT));
end -- if;
if @MOBILE_ONLY is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null';
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + cast(@MOBILE_ONLY as char(1)) + ''' ';
end -- if;
if @ADMIN_ONLY is null begin -- then
set @INSERT_STMT = @INSERT_STMT + ', null';
end else begin
set @INSERT_STMT = @INSERT_STMT + ', ''' + cast(@ADMIN_ONLY as char(1)) + ''' ';
end -- if;
set @INSERT_STMT = @INSERT_STMT + ';'
print @INSERT_STMT;
fetch next from button_cursor into @VIEW_NAME, @CONTROL_INDEX, @CONTROL_TYPE, @MODULE_NAME, @MODULE_ACCESS_TYPE, @TARGET_NAME, @TARGET_ACCESS_TYPE, @CONTROL_TEXT, @CONTROL_TOOLTIP, @CONTROL_ACCESSKEY, @CONTROL_CSSCLASS, @TEXT_FIELD, @ARGUMENT_FIELD, @COMMAND_NAME, @URL_FORMAT, @URL_TARGET, @ONCLICK_SCRIPT, @MOBILE_ONLY, @ADMIN_ONLY;
end -- while;
close button_cursor;
deallocate button_cursor;
GO