簡體   English   中英

使用變量值執行SQL ALTER TABLE STATEMENT

[英]Executing a SQL ALTER TABLE STATEMENT with a variable value

我已經在數據庫表中添加了一個GUID字段,我想通過創建一個guid值,然后將其存儲為相關字段來更新現有用戶,但是當我使用變量時,我似乎無法執行該語句,這是我的代碼:

--Declaration of Script Variables
DECLARE @companyGUID UNIQUEIDENTIFIER
DECLARE @companyDomain NVARCHAR(256)

SET @companyGUID = NEWID()
SET @companyDomain = 'DOMAIN NAME HERE'

--Company Table Update
ALTER TABLE Company ADD GUID UNIQUEIDENTIFIER DEFAULT @companyGUID NOT null
ALTER TABLE Company ADD HasCampaignMonitor BIT
ALTER TABLE Company ADD CampaignMonitorListID NVARCHAR(32)
ALTER TABLE Company ADD CampaignMonitorApiKey NVARCHAR(32)
ALTER TABLE Company ADD CampaignMonitorClientID NVARCHAR(32)
ALTER TABLE Company ADD CampaignMonitorIntegratorID NVARCHAR(16)
ALTER TABLE Company ADD CampaignMonitorRedirectUrl NVARCHAR(256)

UPDATE Company SET GUID = @companyGUID where CompanyID = 1
UPDATE Company SET HasCampaignMonitor = 0 where CompanyID = 1

--User Table Update
ALTER TABLE User ADD GUID UNIQUEIDENTIFIER DEFAULT @companyGUID 
ALTER TABLE User ADD DomainStub NVARCHAR(256) DEFAULT @companyDomain

--Activity Progress Table Update
ALTER TABLE ActivityProgress ADD GUID UNIQUEIDENTIFIER DEFAULT @companyGUID 

--Answer Table Update
ALTER TABLE Answer ADD GUID UNIQUEIDENTIFIER DEFAULT @companyGUID 

您不能在alter語句中使用變量。 默認值是一個約束,可以使用任何靜態值和某些函數作為默認值。

ALTER TABLE修改表的結構,而不修改存儲的數據。

更改表(可能在GUID列中使用NULL值),更新新列,使用NOT NULL約束更改列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM