2015-09-20 21 views
0

我試圖在我的應用程序上合併兩個命令...我聲明瞭兩個變量來更新它們...例如,訂單有一個服務員(約翰)和一個表數(21)......我想用相同的服務員和表更新二階..所以我讓服務員爲(J)和表作爲(2)只有第一個字母在SQL Server上更新

這是我的查詢

declare @orderOne float = 4429 ; 
declare @orderTwo float = 4893 ; 
declare @tableNumber varchar = (SELECT TOP 1 tableNumber FROM ORDERS WHERE orderId in (@orderOne,@orderTwo) AND isActive = 0); 
declare @waiterN varchar = (SELECT TOP 1 waiterName FROM ORDERS WHERE orderId in (@orderOne,@orderTwo) AND isActive = 0); 

UPDATE orders SET orderId = @orderOne , tableNumber = @tableNumber , waiterName = @waiterN where orderId = @orderTwo ; 
+0

定義'varchar(99)'的長度,如果你沒有定義,那麼它將假設爲1,這就是爲什麼你只有'J' – wiretext

回答

0
declare @orderOne float = 4429 ; 
declare @orderTwo float = 4893 ; 
declare @tableNumber varchar(100); --<-- define variable length, default is 1 
declare @waiterN varchar(100);  --<-- define variable length, default is 1 

SELECT TOP 1 @tableNumber = tableNumber 
      ,@waiterN = waiterName 
FROM ORDERS WHERE orderId in (@orderOne,@orderTwo) AND isActive = 0; 



UPDATE orders 
    SET orderId = @orderOne 
    , tableNumber = @tableNumber 
    , waiterName = @waiterN 
where orderId = @orderTwo ; 
+0

它現在工作很好 –

相關問題