Sütun var olduğundan emin olduktan sonra bir sütun bırakan (görünüşte) düz bir SQL parçacığı yazıyordum.
Sorun: sütun mevcut değilse,'un içinde bulunan numaralı kod, bu sütunu bulamadığından şikayetçidir! Eh, doh, bu yüzden IF cümlesi içinde!
Yani benim sorum şu, neden yürütülmemesi gereken bir kod parçası hata veriyor?Bir T-SQL bloğu neden çalıştırılmasa bile bir hata veriyor?
İşte pasajı var:
IF exists (select * from syscolumns
WHERE id=object_id('Table_MD') and name='timeout')
BEGIN
ALTER TABLE [dbo].[Table_MD]
DROP COLUMN timeout
END
GO
... ve burada hata var: Microsoft SQL Server 2005 Express Edition kullanıyorum
Error executing SQL script [...]. Invalid column name 'timeout'
.
Doğru. Sproc'in kullandığı etrafında geçici tablolar varsa, bu hatayı da alacaksınız. – ConcernedOfTunbridgeWells
Geçici bir tablo varsa, spro'yu derlerken sütunlar kontrol edilir. Sproc aslında tabloyu oluşturduğunda (örneğin bir seçimle), spro'yu yeniden derlemeden önce tabloyu düşürmeniz gerekebilir. – ConcernedOfTunbridgeWells
Bu çok iyi bir cevap :) –