Minun on lisättävä tietty sarake, jos sitä ei ole olemassa. Minulla on jotain seuraavan kaltaista, mutta se palauttaa aina false:
IF EXISTS(SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'myTableName'
AND COLUMN_NAME = 'myColumnName')
Miten voin tarkistaa, onko sarake olemassa SQL Server -tietokannan taulukossa?
Muokkaa alla olevia ohjeita omien tarpeidesi mukaan:
if not exists (select
column_name
from
INFORMATION_SCHEMA.columns
where
table_name = 'MyTable'
and column_name = 'MyColumn')
alter table MyTable add MyColumn int
Muokkaa käsittelemään muokkausta kysymykseen: Tuon pitäisi toimia - katso tarkkaan koodisi läpi typerien virheiden varalta; kysytkö esimerkiksi INFORMATION_SCHEMA-tietokannan tietoja samasta tietokannasta, johon inserttiäsi sovelletaan? Onko sinulla kirjoitusvirhe taulukon/sarakkeen nimessä jommassakummassa lausekkeessa?
Kokeile tätä...
IF NOT EXISTS(
SELECT TOP 1 1
FROM INFORMATION_SCHEMA.COLUMNS
WHERE
[TABLE_NAME] = 'Employees'
AND [COLUMN_NAME] = 'EmployeeID')
BEGIN
ALTER TABLE [Employees]
ADD [EmployeeID] INT NULL
END
Tarkista ensin, onko table
/column
(id
/name
) -yhdistelmä olemassa dbo.syscolumns
-taulussa (SQL Serverin sisäinen taulukko, joka sisältää kenttämäärittelyt), ja jos ei ole, tee asianmukainen ALTER TABLE
-kysely sen lisäämiseksi. Esimerkiksi:
IF NOT EXISTS ( SELECT *
FROM syscolumns
WHERE id = OBJECT_ID('Client')
AND name = 'Name' )
ALTER TABLE Client
ADD Name VARCHAR(64) NULL