0

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

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

3 回答 3

2

也许这对你有用:

DECLARE @Value INT = 1
IF( @Value IS NULL)
BEGIN
    RAISERROR('Exit',16,1)
END
ELSE
BEGIN
    SELECT @Value
END
于 2016-11-22T19:40:10.220 回答
2
IF @Value IS NULL RAISERROR('EXIT', 16,1);
于 2016-11-22T19:40:19.297 回答
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
于 2016-11-22T21:01:15.717 回答