Ben SQL Server veritabanı ve ben sadece gelen sütunlardan birinin türünü değiştirebilirsiniz fark int
etmek bool
.
Bu tabloya girilmiş olan verileri kaybetmeden bunu nasıl yapabilirim?
Ben SQL Server veritabanı ve ben sadece gelen sütunlardan birinin türünü değiştirebilirsiniz fark int
etmek bool
.
Bu tabloya girilmiş olan verileri kaybetmeden bunu nasıl yapabilirim?
Yanıtlar:
Aşağıdaki komutu kullanarak bunu kolayca yapabilirsiniz. 0'ın herhangi bir değeri 0'a (BIT = yanlış), diğer her şey 1'e (BIT = doğru) dönüştürülür.
ALTER TABLE dbo.YourTable
ALTER COLUMN YourColumnName BIT
Diğer seçenek, yeni bir tür sütun oluşturmak BIT
, eski sütundan doldurmaktır ve işiniz bittiğinde eski sütunu bırakın ve yenisini eski isimle yeniden adlandırın. Bu şekilde, dönüşüm sırasında bir şeyler ters giderse, yine de tüm verilere sahip olduğunuz için her zaman geri dönebilirsiniz.
NULL
kalır NULL
, 0
olur False
, sıfır olmayan değerler (1, -1, 1999, -987 ...) olur True
.
ALTER TABLE tablename
ALTER COLUMN columnname columndatatype(size)
Not: sütun boyutu varsa, boyutu da yazmanız yeterlidir.
Geçerli bir değişiklikse.
özelliği değiştirebilirsiniz.
Araçlar -> Seçenekler -> Tasarımcılar -> Tablo ve Veritabanı tasarımcıları -> İşaretini kaldır -> Tablonun yeniden oluşturulmasını gerektiren değişiklikleri kaydetmeyi önle.
Artık tabloyu yeniden oluşturmadan veya ur kayıtlarınızı kaybetmeden sütun adını kolayca değiştirebilirsiniz.
Neden veri kaybedeceğinizi düşünüyorsunuz? Management Studio'ya gidin ve veri türünü değiştirin. Mevcut değer boole (bit) dönüştürülebilirse bunu yapar. Başka bir deyişle, "1" doğru ile eşlenirse ve "0" orijinal alanınızda yanlış ile eşlenirse, iyi olacaksınız.
T-SQL (MSSQL) kullanıyorsanız; bu komut dosyasını denemelisiniz:
ALTER TABLE [Employee] ALTER COLUMN [Salary] NUMERIC(22,5)
MySQL kullanıyorsanız; bu komut dosyasını denemelisiniz:
ALTER TABLE [Employee] MODIFY COLUMN [Salary] NUMERIC(22,5)
Oracle kullanıyorsanız; bu komut dosyasını denemelisiniz:
ALTER TABLE [Employee] MODIFY [Salary] NUMERIC(22,5)
Araç-Seçenek-tasarımcıları-Tablo ve Veritabanı tasarımcılarına gidin ve Kaydetmeyi önle seçeneğinin işaretini kaldırın
Sütun veri türünü kontrol sütunu türüyle değiştirin:
IF EXISTS(
SELECT 1
FROM sys.columns
WHERE NAME = 'YourColumnName'
AND [object_id] = OBJECT_ID('dbo.YourTable')
AND TYPE_NAME(system_type_id) = 'int'
)
ALTER TABLE dbo.YourTable ALTER COLUMN YourColumnName BIT
benim için, sql server 2016'da böyle yapıyorum
* Sütun1 sütununu sütun2 olarak yeniden adlandırmak için
EXEC sp_rename 'dbo.T_Table1.Column1', 'Column2', 'COLUMN'
* Sütun türünü dizeden int'e değiştirmek için :( Lütfen verilerin doğru biçimde olduğundan emin olun )
ALTER TABLE dbo.T_Table1 ALTER COLUMN Column2 int;
Veri kaybetmeden veri türünü değiştirin
alter table tablename modify columnn newdatatype(size);