最近发现使用Sql的存储过程,可以大大减少程序的代码量。
以后要考虑多多使用存储过程了。
两个小技巧:
一、使用存储过程动态创建数据表。
/*
过程功能:存储过程动态创建数据表
注意事项:连接Sql语句的“单引号”
创建日期:2006-09-01
创建人:SkyJacker
Blog:Http://blog.csdn.net/skyjacker
*/
CREATE PROCEDURE [dbo].[CreateTable]
@TableName varchar(255)
AS
begin
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+@TableName+']') and
OBJECTPROPERTY(id, N'IsUserTable') = 1)
exec('drop table '+@TableName);
exec('
CREATE TABLE [dbo].['+@TableName+'] (
[ID] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Name] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY] ')
end;
GO
执行 exec CreateTable 'TabHello'
二、插入新记录。
/*
过程功能:
插入新记录
如果已存在则不插入
不存在则插入
注意事项:应该有更好的方法
创建日期:2006-09-01
创建人:SkyJacker
Blog:Http://blog.csdn.net/skyjacker
*/
CREATE PROCEDURE LyrTypeTable
@MapLayer Varchar(255),
@Type varChar(255),
@DrawTool varchar(255)
as
begin
declare @RecordNum integer
set @RecordNum=0
select top 1 MapLayer from TabTest where MapLayer = @MapLayer
set @RecordNum=@@rowcount
if (@RecordNum=0)
insert into TabTest(MapLayer,Type,DrawTool) values(@MapLayer,@Type,@DrawTool)
end;
GO