0
CREATE PROCEDURE _InsertAttbts 
    @Attribute VARCHAR(100) 

AS 

    IF NOT EXISTS (SELECT * FROM dbo.Attributes WHERE Attribute = @Attribute) 

    INSERT INTO dbo.Attributes(Attribute) 
       VALUES(@Attribute) 

    IF NOT EXISTS (SELECT * FROM DBO.Products WHERE Pname [email protected]) 

     ALTER TABLE PRODUCTS 
     ADD @Attribute varchar(100) 

這裏Products是我的主表,Attributes是它的子表。我的任務是,如果用戶試圖插入一個新行,它會檢查該行是否存在,如果不是,它希望在產品表中添加新行,同時它應該在屬性表中的屬性字段中插入相同的值...如何在現有表中創建(添加)新行並在另一個表中插入一行?

我在SQL Server 2012中使用SP.

Plz Help!

謝謝....

+0

你能否提供一些樣本數據來解釋你想要做什麼? –

+0

我不明白;爲什麼要在產品表中添加一列? – Nilesh

+0

我試圖在產品表中添加一個新字段,因爲用戶給出了該屬性的名稱,並且相同的屬性也應該在屬性表中保存(通過插入)... – user72

回答

2

你需要用動態SQL做這件事,我想。

CREATE PROCEDURE _InsertAttbts @Attribute VARCHAR(100) 
AS 
BEGIN 
    IF NOT EXISTS (SELECT * FROM dbo.Attributes WHERE Attribute = @Attribute) 
    BEGIN 
     INSERT INTO dbo.Attributes(Attribute) 
      VALUES(@Attribute); 

     declare @sql nvarchar(max) = 'ALTER TABLE PRODUCTS ADD '[email protected]+' varchar(100)'; 
     exec sp_executesql @sql; 
    END; 
END; 

我不知道你爲什麼要這麼做。您可以使用INFORMATION_SCHEMA.COLUMNS或其中一個系統表獲取列的列表。

相關問題