2010-11-03 73 views
3

這個查詢可以用變量寫出來嗎?這個查詢可以用變量寫出來嗎?

基本上我需要的是從某個表插入一條新記錄的某些東西的ID。現在我通過將該ID存儲在變量中然後使用它來做到這一點。

DECLARE @store_num char(4); 
SELECT @store_num = [store_no] FROM store WHERE (store_name = 'Rocky Mountain Produce'); 
INSERT INTO [ITD640_B].[dbo].[employee] 
      ([employee_no] 
      ,[employee_fname] 
      ,[employee_lname] 
      ,[store_no]) 
    VALUES 
      (123456 
      ,'YourFirstName' 
      ,'YourLastName' 
      ,@store_num); 
+1

請不要使用 「[」 和 「]」,除非它們是必要的(在上面的代碼中,它們是不必要的),他們使代碼很痛苦閱讀!這將大大幫助窮人保持你的代碼5年後! – 2010-11-03 22:00:19

+0

@KM:這些不是由我'SQL Server Manager Studio'生成的。但感謝您的幫助提示。我會記住這一點。 – claws 2010-11-03 22:58:55

回答

5
INSERT INTO [ITD640_B].[dbo].[employee] 
    ([employee_no] 
    ,[employee_fname] 
    ,[employee_lname] 
    ,[store_no]) 
SELECT 
    123456 
    ,'YourFirstName' 
    ,'YourLastName' 
    ,[store_no] 
FROM 
    store 
WHERE 
    store_name = 'Rocky Mountain Produce'; 
+0

+1:擊敗我51秒。但是WHERE中的括號是不必要的。 – 2010-11-03 21:12:21

+0

小細節:在'YourLastName'和[store_no]之間缺少逗號 – 2010-11-03 21:13:10

0
INSERT INTO [ITD640_B].[dbo].[employee] 
      ([employee_no] 
      ,[employee_fname] 
      ,[employee_lname] 
      ,[store_no]) 
    SELECT 
      123456 
      ,'YourFirstName' 
      ,'YourLastName' 
      ,[store_no] 
     FROM store 
     WHERE store_name = 'Rocky Mountain Produce' 
0

使用子查詢的另一種方法:

INSERT INTO [ITD640_B].[dbo].[employee] 
      ([employee_no] 
      ,[employee_fname] 
      ,[employee_lname] 
      ,[store_no]) 
    VALUES 
      (123456 
      ,'YourFirstName' 
      ,'YourLastName' 
      ,(SELECT [store_no] FROM store WHERE (store_name = 'Rocky Mountain Produce'))) 
相關問題