create function StopArea(@A varchar(100)) returns bit as begin if @A='1'--判斷 return 1 return 0 end
CREATE function StopArea(@A varchar(100)) returns bit as begin declare @PD int set @PD = (select .... SELECT @@IDENTITY) IF(@PD != "") { INSERT INTO ... return 1 } return 0--判斷 END 是这个意思。但语法有些不知道怎么写
樓主要實現怎樣的效果; 列出來,看一下函數的語句語法和函數語句set @PD = (select .... SELECT @@IDENTITY) --完全錯.. @@IDENTITY--用於標識列新增時用賦值: select @PD=ID from table where Name=@A--這樣賦值 或 set @PD=(select top 1 ID from table where Name=@A)
CREATE function StopArea(@StopArea varchar(100)) returns bit as begin declare @PD int set @PD=(SELECT id FROM StopArea WHERE (StopArea = @StopArea)) if(@PD >0) INSERT INTO StopArea (StopArea) VALUES ('1') return 1;
我来捡分的 @A的内容比如是:北京 需要做一个插入,插入前做个判断,如果没有 则插入并返回true,如果有则返回FALSE CREATE function StopArea(@StopArea varchar(100)) returns bit as begin declare @PD int set @PD=(SELECT id FROM StopArea WHERE StopArea = @StopArea) if(@PD is null) begin --没有,插入 INSERT INTO StopArea (StopArea) VALUES ('1') return 1 end else begin --有 返回 false return 0 end END
还是不对啊。提示:‘ 在函数内不能正确的使用 insert
set @PD=(SELECT top 1 id FROM StopArea WHERE StopArea = @StopArea)--加上top 1賦值 --這一段出錯,函數用法,只有對表變量用insert INSERT INTO StopArea (StopArea) VALUES ('1')只是判斷時把insert去掉
returns bit
as
begin
if @A='1'--判斷
return 1
return 0
end
returns bit
as
begin
declare @PD int
set @PD = (select .... SELECT @@IDENTITY)
IF(@PD != "")
{
INSERT INTO ...
return 1
}
return 0--判斷
END
是这个意思。但语法有些不知道怎么写
寫法\判斷錯參照
http://technet.microsoft.com/zh-cn/library/ms186755(SQL.90).aspx
列出來,看一下函數的語句語法和函數語句set @PD = (select .... SELECT @@IDENTITY) --完全錯..
@@IDENTITY--用於標識列新增時用賦值:
select @PD=ID from table where Name=@A--這樣賦值
或
set @PD=(select top 1 ID from table where Name=@A)
returns bit
as
begin
declare @PD int
set @PD=(SELECT id FROM StopArea WHERE (StopArea = @StopArea))
if(@PD >0)
INSERT INTO StopArea (StopArea) VALUES ('1')
return 1;
return 0
END中国风
麻烦了。我整半天都有错。!
1在插入那里 写错了
2 在@PD的判断如何为空?
@A的内容比如是:北京 需要做一个插入,插入前做个判断,如果没有 则插入并返回true,如果有则返回FALSE CREATE function StopArea(@StopArea varchar(100))
returns bit
as
begin declare @PD int
set @PD=(SELECT id FROM StopArea WHERE StopArea = @StopArea) if(@PD is null)
begin
--没有,插入
INSERT INTO StopArea (StopArea) VALUES ('1')
return 1
end
else
begin
--有 返回 false
return 0
end
END
在函数内不能正确的使用 insert
--這一段出錯,函數用法,只有對表變量用insert
INSERT INTO StopArea (StopArea) VALUES ('1')只是判斷時把insert去掉