如何在存储过程中使用IF?

时间:2013-01-27 18:39:04

标签: sql stored-procedures

IF Dealdate = @DealDate

我在存储过程中使用IF命令。在该命令中,我检查带有变量的表中的列,但它无法执行并返回此错误:

  

无效的列名称“Dealdate”。

2 个答案:

答案 0 :(得分:1)

如果您想检查表格中是否存在DealDate等于@DealDate的行,那么您就是这样做的,

IF EXISTS (SELECT * FROM MyTable WHERE DealDate = @DealDate)
BEGIN
END

答案 1 :(得分:0)

如果要检查表中的值。你需要像这样检查表中列的值 IF EXISTS(从MyTable中选择DealDate WHERE DealDate = @DealDate) 开始     - 你的逻辑就在这里。 END

但是您收到错误“无效的列名称'Dealdate'” 这表明您的代码“如果Dealdate = @DealDate”没有指定什么是Dealdate,因此SQL服务器发出此错误,因为Dealdate不是变量,因此SQL Server尝试搜索具有此类名称的列,但由于表名不是在我们的代码中指定它会给你这个错误。