2014-09-27 84 views
0

我有麻煩請幫忙。如何在SQL Server中將函數設置爲默認值?

尋找我的問題後,我決定發佈在這裏。

看看我的代碼,並告訴我是否可以將默認值設置爲函數。

我想要做的是顯示我的第一列數據的前三個字符,它是Product_Name

例如,我的第一列有一個名稱Xperia,而且我希望它的前三個字符顯示在我使用alter code創建的最後一列中。

我希望你明白我說的話。

Xperia ----> Xpe 

代碼是:

alter table dummy 
add new_col varchar(250) default substring(first_column, 1, 3) 

返回一個錯誤:

Msg 128, Level 15, State 1, Line 2
The name "first_column" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.

但是我可以設置getdate()功能作爲默認值。

謝謝

+0

:(沒有人回覆 – 2014-09-27 22:50:41

+0

你只發布你的問題7分鐘前!! – Tony 2014-09-27 22:51:49

+0

好吧,但我得到了我的最後兩個問題在不到2分鐘的反應堆棧溢出是非常活躍的網站..我明白 – 2014-09-27 22:52:53

回答

3

你爲什麼要改變表格?這聽起來像你需要一個VIEW

視圖可以添加一個額外的字段,只選擇前三個字符,並且不需要每次更新時您都需要更新UPDATEINSERT數據。例如:

CREATE VIEW Table_With_Truncated_Product_Name 
AS 
SELECT *, LEFT(Product_Name, 3) AS truncated_product_name 
FROM Your_Table 

但是,如果你不想使用VIEW有可能使用Computed Column

在這種情況下,你會改變你的表並添加字段:

ALTER TABLE Your_Table ADD truncated_product_name AS LEFT(Product_Name, 3) 

雖然我沒有在時刻訪問SQL Server檢查,將工作。

+0

請進一步闡述你的答案..我喜歡你所說的,但在一半.. – 2014-09-27 22:55:30

+0

我可以成功執行它,但我沒有看到任何列最後顯示從我的第一列三個字符 – 2014-09-27 23:09:54

+0

你現在會需要從視圖中選擇'SELECT',而不是原始表格。 – Tony 2014-09-27 23:11:14

相關問題