2016-12-24 74 views
-3

我想詢問關於創建存儲過程的技巧。創建存儲過程的簡單方法

當我嘗試創建過程時,我必須在@符號的開頭寫入字段 - 所以我沒有簡單的方法來執行此操作?

像這樣

CREATE PROCEDURE [dbo].[Insert_Vehicle_Procedure] 
    (@VehiclePlateNo varchar(max), 
    @Variety varchar(max) 
    ) 
AS 
    SET NOCOUNT OFF 

    INSERT INTO [dbo].[Vehicles] ([VehiclePlateNo], [Variety]) 
    VALUES (@VehiclePlateNo, @Variety) 

有時有數以百計的領域寫他們可真煩人:)

+0

這個存儲過程已經很簡潔了,你究竟在尋找什麼「優化」在這裏?我想你可以讓你的變量/實體/等。名字*較短*,但是很快你會發現收益遞減,因爲在幾個字符後,這些簡明的名字將不再有效地描述自己。如果你只是不想輸入代碼,那麼你可能需要一些代碼生成工具。即使是一個本土的。您可以查詢表結構並從中發佈您的過程文本。 – David

+1

沒有長度的BTW'varchar'與那裏的'varchar(1)'相同。 SSMS工具包有一個幫助程序可以爲表格創建簡單的crud程序。 –

+0

我知道@MartinSmith我寫道,我只是一個例子。 – Sososo

回答

0

爲什麼不只是寫,從發出存儲過程的參數數據腳本塊SQL腳本自己查詢systables和syscolumns系統表。

+0

你能更清楚地解釋一下嗎?我想我錯過了關於這方面的信息。如果你能在這方面提供幫助,我想提高我的數據庫知識。 – Sososo

+0

表的所有列名稱和數據類型都保存在SQL Server syscolumns表中。如果你寫了一個從syscolumns表中選擇數據的查詢(即爲目標表中的每個字段選擇一行),你可以很容易地讓Select語句寫出一行文本,如「@VehiclePlateNo varchar(max)」 systables和systypes中的數據。 – PhillipH