--建立测试表 create table test ( name varchar(255), colum1 int constraint defaultcolum1 default 1, colum2 varchar(255) constraint defaultcolum2 default 'aa', ) go--创建储存过程 --如果@JjCode为NULL或未找到,将@ClCode数值插入到表中 --如果@JjCode找到并且@YnOver为'完成',更新表中@ClCode的colum1的值 --如果@JjCode找到并且@YnOver为'未完成',更新表中@ClCode的colum2的值 create proc p1 @ClCode varchar(50), @JjCode varchar(50) = NULL, @YnOver varchar(50) as begin if not exists (select name from test where name =@JjCode) or (@JjCode = NULL) begin insert into test values (@ClCode,default,default) end if exists (select name from test where name = @JjCode) and (@YnOver = '完成') begin update test set colum1 = 2 where name = @JjCode end if exists (select name from test where name = @JjCode) and (@YnOver = '未完成') begin update test set colum2 = 'bb' where name = @JjCode end end go--测试数据 exec p1 'ww',NULL,'完成' exec p1 'ww','ww','完成' exec p1 'ww','ww','未完成'
create proc p1 ( @ClCode varchar(50), @JjCode varchar(50), @YnOver varchar(50) ) as set nocount on begin --SQL1语句(写入表1)
if(@JjCode<>'' and @YnOver='完成') begin --SQL2语句(更新表2的一个字段)
end if(@JjCode<>'' and @YnOver='未完成') begin --SQL3语句(更新表2的一个字段)
endend go
create proc p1 @ClCode varchar(50), @JjCode varchar(50), @YnOvervarchar(50) as begin set xact_abort on begin tran
--执行SQL语句1 if @JjCode is not null and @YnOver='完成' begin --执行SQL语句2 end if @JjCode is not null and @YnOver='未完成' begin --执行SQL语句3 end commit tran end
我想用if(exists(select * from TableName where ColumnName=@vColumnName))之類的語句 可以實現樓主的功能
--建立测试表
create table test
(
name varchar(255),
colum1 int constraint defaultcolum1 default 1,
colum2 varchar(255) constraint defaultcolum2 default 'aa',
)
go--创建储存过程
--如果@JjCode为NULL或未找到,将@ClCode数值插入到表中
--如果@JjCode找到并且@YnOver为'完成',更新表中@ClCode的colum1的值
--如果@JjCode找到并且@YnOver为'未完成',更新表中@ClCode的colum2的值
create proc p1
@ClCode varchar(50),
@JjCode varchar(50) = NULL,
@YnOver varchar(50)
as
begin
if not exists (select name from test where name =@JjCode) or (@JjCode = NULL)
begin
insert into test values (@ClCode,default,default)
end
if exists (select name from test where name = @JjCode) and (@YnOver = '完成')
begin
update test set colum1 = 2 where name = @JjCode
end
if exists (select name from test where name = @JjCode) and (@YnOver = '未完成')
begin
update test set colum2 = 'bb' where name = @JjCode
end
end
go--测试数据
exec p1 'ww',NULL,'完成'
exec p1 'ww','ww','完成'
exec p1 'ww','ww','未完成'
( @ClCode varchar(50),
@JjCode varchar(50),
@YnOver varchar(50)
)
as
set nocount on
begin --SQL1语句(写入表1)
if(@JjCode<>'' and @YnOver='完成')
begin
--SQL2语句(更新表2的一个字段)
end
if(@JjCode<>'' and @YnOver='未完成')
begin --SQL3语句(更新表2的一个字段)
endend
go
@ClCode varchar(50),
@JjCode varchar(50),
@YnOvervarchar(50)
as
begin set xact_abort on
begin tran
--执行SQL语句1
if @JjCode is not null and @YnOver='完成'
begin
--执行SQL语句2
end
if @JjCode is not null and @YnOver='未完成'
begin
--执行SQL语句3
end commit tran
end
可以實現樓主的功能