小弟我从sql2005导出所有的存储脚本,要全部去掉注释,怎么实现的
我从sql2005导出所有的存储脚本,要全部去掉注释,如何实现的
比如我导出的脚本,内容是:
EXEC dbo.sp_executesql @statement = N'--============
--作 者:abc
--创建日期:2008-10-25
--功 能:返回所有单据编号的存储过程
--最后修改日期:2008-10-25
--drop procedure p_get_bill_code
--=================
CREATE procedure [dbo].[p_get_bill_code]
@billcode varchar(50) output,
@table_name varchar(50),
@code_fieldname varchar(50),
@prefix varchar(50) = '''' --前缀,默认为空
as begin
--set nocount on
declare @max_code varchar(50)
declare @str_number varchar(50)
declare @sql varchar(2000)
我想把凡是有“--”的注释包括以后的内容,就用空格来代替或删除掉,比如上面的内容变成:
EXEC dbo.sp_executesql @statement = N'
CREATE procedure [dbo].[p_get_bill_code]
@billcode varchar(50) output,
@table_name varchar(50),
@code_fieldname varchar(50),
@prefix varchar(50) = ''''
as begin
declare @max_code varchar(50)
declare @str_number varchar(50)
declare @sql varchar(2000)
请问如何实现,因为我导出的脚本的内容简介有十几万行的,如果用人工去删除,要一行一行来删除,会浪费很多时间的,请问怎么来搞,或用什么软件可以实现,比如word软件或其它软件是否可以实现?
------解决方案--------------------
如果都是以
--============
开头和结尾的
就以这个为标示
从--============
到--============
用''替换
------解决方案--------------------
------解决方案--------------------
比如我导出的脚本,内容是:
EXEC dbo.sp_executesql @statement = N'--============
--作 者:abc
--创建日期:2008-10-25
--功 能:返回所有单据编号的存储过程
--最后修改日期:2008-10-25
--drop procedure p_get_bill_code
--=================
CREATE procedure [dbo].[p_get_bill_code]
@billcode varchar(50) output,
@table_name varchar(50),
@code_fieldname varchar(50),
@prefix varchar(50) = '''' --前缀,默认为空
as begin
--set nocount on
declare @max_code varchar(50)
declare @str_number varchar(50)
declare @sql varchar(2000)
我想把凡是有“--”的注释包括以后的内容,就用空格来代替或删除掉,比如上面的内容变成:
EXEC dbo.sp_executesql @statement = N'
CREATE procedure [dbo].[p_get_bill_code]
@billcode varchar(50) output,
@table_name varchar(50),
@code_fieldname varchar(50),
@prefix varchar(50) = ''''
as begin
declare @max_code varchar(50)
declare @str_number varchar(50)
declare @sql varchar(2000)
请问如何实现,因为我导出的脚本的内容简介有十几万行的,如果用人工去删除,要一行一行来删除,会浪费很多时间的,请问怎么来搞,或用什么软件可以实现,比如word软件或其它软件是否可以实现?
------解决方案--------------------
如果都是以
--============
开头和结尾的
就以这个为标示
从--============
到--============
用''替换
------解决方案--------------------
------解决方案--------------------
- SQL code
/* create function [dbo].[m_split](@c varchar(2000),@split varchar(2)) returns @t table(col varchar(200)) as begin while(charindex(@split,@c)<>0) begin insert @t(col) values (substring(@c,1,charindex(@split,@c)-1)) set @c = stuff(@c,1,charindex(@split,@c),'') -- SET @c = substring(@c,charindex(' ',@c)+1,len(@c)) end insert @t(col) values (@c) return end */ declare @t varchar(max) set @t= ' EXEC dbo.sp_executesql @statement = ''N--============ --作 者:abc --创建日期:2008-10-25 --功 能:返回所有单据编号的存储过程 --最后修改日期:2008-10-25 --drop procedure p_get_bill_code --================= CREATE procedure [dbo].[p_get_bill_code] @billcode varchar(50) output, @table_name varchar(50), @code_fieldname varchar(50), @prefix varchar(50) = '''' --前缀,默认为空 as begin --set nocount on declare @max_code varchar(50) declare @str_number varchar(50) declare @sql varchar(2000) ' select * into #t from [dbo].[m_split](@t,char(13)) where col<>'' update #t set col=left(col,case charindex('--',col) when 0 then len(col) else charindex('--',col)-2 end) declare @sql varchar(max) set @sql='' select @sql=@sql+col+char(13) from #t where col<>'' and col<>char(13) and col<>char(9) and col<>char(10) select @sql /* EXEC dbo.sp_executesql @statement = ' CREATE procedure [dbo].[p_get_bill_code] @billcode varchar(50) output, @table_name varchar(50), @code_fieldname varchar(50), @prefix varchar(50) = '' as begin declare @max_code varchar(50) declare */ drop table #t
------解决方案--------------------
--修正一下,写错一个数字
- SQL code
declare @t varchar(max) set @t= ' EXEC dbo.sp_executesql @statement = ''N--============ --作 者:abc --创建日期:2008-10-25 --功 能:返回所有单据编号的存储过程 --最后修改日期:2008-10-25 --drop procedure p_get_bill_code --================= CREATE procedure [dbo].[p_get_bill_code] @billcode varchar(50) output, @table_name varchar(50), @code_fieldname varchar(50), @prefix varchar(50) = '''' --前缀,默认为空 as begin --set nocount on declare @max_code varchar(50) declare @str_number varchar(50) declare @sql varchar(2000) ' select * into #t from [dbo].[m_split](@t,char(13)) where col<>'' update #t set col=left(col,case charindex('--',col) when 0 then len(col) else charindex('--',col)-1 end) declare @sql varchar(max) set @sql='' select @sql=@sql+col+char(13) from #t where col<>'' and col<>char(13) and col<>char(9) and col<>char(10) select @sql /* EXEC dbo.sp_executesql @statement = 'N CREATE procedure [dbo].[p_get_bill_code] @billcode varchar(50) output, @table_name varchar(50), @code_fieldname varchar(50), @prefix varchar(50) = '' as begin declare @max_code varchar(50) */ drop table #t