最近發現使用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