T-SQL 2008-当Value为NULL时退出

时间:2016-11-22 19:36:49

标签: sql-server tsql isnull raiserror

我正在寻找一种在@Value为null时退出T-SQL脚本的方法。这是我到目前为止所做的,但它没有按预期工作:

SELECT 
    @Value,
    CASE 
       WHEN @Value IS NULL   
          RAISERROR('EXIT', 16, 1) 
FROM 
    table 
WHERE 
    name LIKE 'test'

3 个答案:

答案 0 :(得分:2)

也许这对你有用:

DECLARE @Value INT = 1
IF( @Value IS NULL)
BEGIN
    RAISERROR('Exit',16,1)
END
ELSE
BEGIN
    SELECT @Value
END

答案 1 :(得分:2)

IF @Value IS NULL RAISERROR('EXIT', 16,1);

答案 2 :(得分:0)

使用游标和临时表,您可以获得所需的输出。不知道这是不是目标,

USE AdventureWorksLT2012

DECLARE @CustomerID AS INT
DECLARE @CompanyName AS VARCHAR(MAX)
DECLARE @EmailAddress AS VARCHAR(MAX)

CREATE TABLE #output (CustomerID INT,CompanyName VARCHAR(MAX),EmailAddress VARCHAR(MAX)) 

DECLARE testCursor CURSOR 
    FOR 
    SELECT TOP (100) 
       CustomerID
      ,CompanyName
      ,EmailAddress
    FROM SalesLT.Customer   
    ORDER BY customerID DESC;

OPEN testCursor;

FETCH NEXT FROM testCursor
INTO @CustomerID, @CompanyName, @emailAddress;
if @EmailAddress is not null
BEGIN 
    INSERT INTO #output values( @CustomerID, @CompanyName, @emailAddress);  
    WHILE @@FETCH_STATUS = 0  
     BEGIN  
        FETCH NEXT FROM testCursor
        INTO @CustomerID, @CompanyName, @emailAddress;
        if @EmailAddress is null 
        BEGIN
          RAISERROR('Exit',16,1);
          BREAK;
        end
        INSERT INTO #output values( @CustomerID, @CompanyName, @emailAddress);
       END;
    END
CLOSE testCursor;
DEALLOCATE testCursor;

SELECT * FROM #output;

DROP TABLE #output