Forum

SQL de script oluşt...
 
Bildirimler
Hepsini Temizle

SQL de script oluşturma

6 Yazılar
4 Üyeler
0 Likes
520 Görüntüleme
(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

Merhaba

veri tabanımda bazı sütunlar tinyint olarak tanımlı. bu sutünları int türüne nasıl dönüştürebilirim?

teşekkürler

 

 
Gönderildi : 02/02/2017 19:38

(@enginkulac)
Gönderiler: 118
Estimable Member
 

Merhaba,

Konu sql server bölümünde olmalıydı sanırım. Ben soruyu aşağıdaki şekilde anladım.

ALTER TABLE TableName ALTER COLUMN ColumnName int;

 
Gönderildi : 02/02/2017 20:56

(@muratguler)
Gönderiler: 313
Honorable Member
Konu başlatıcı
 

bilinen kolonun değişmesi için değil c#'taki replace komutu gibi bir şey yazmak istiyorum

 
Gönderildi : 03/02/2017 12:22

(@eravse)
Gönderiler: 1753
Üye
 

merhaba sütünün tamamını engün hocamın dediği gibi değişirsiniz ama içindeki veriyi anlık değiştirecekseniz cast veya convert kullanabılırsınız

detaylar MSDN de açıklanmıştır.

 

https://technet.microsoft.com/tr-tr/library/ms187928(v=sql.110).aspx

 

saygılarımla

 

ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com

 
Gönderildi : 03/02/2017 12:28

(@volkanalkilic)
Gönderiler: 137
Estimable Member
 

C# tarafında aşağıdaki şekilde cast edebilirsin;

 

int i = (byte)datarow["SÜTUN_ADI"];
 
Gönderildi : 03/02/2017 12:56

(@enginkulac)
Gönderiler: 118
Estimable Member
 

bilinen kolonun değişmesi için değil c#'taki replace komutu gibi bir şey yazmak istiyorum

 

Aşağıdaki sctiptte TABLE_NAME alanına, kolon türlerini değiştirmek istediğiniz tablonun adını yazın, if koşulunu istediğiniz şartlara göre uyarlayın. işinizi görecektir. Bu arada o tablodaki tüm sutunların türünü yazdığınız if koşuluna göre değiştirebilir. Önemli bir db üzerinde çalışıyorsanız işlem yapmadan backup alın.

 

declare @cnt int
declare @syc int
set @syc = 1
set @cnt = (select count(COLUMN_NAME) from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='TEST')
declare @Tbl table(id int,ClmnName varchar(max))
INSERT INTO @Tbl (id,ClmnName) (select row_number() over(order by COLUMN_NAME) AS ID, COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='TEST')

WHILE @syc <= @cnt
BEGIN
     declare @cName varchar(max)
     declare @cType varchar(max)
     declare @SqlStr VarChar(100)
     set @cName = (select ClmnName from @Tbl where id=@syc)
     set @syc = @syc + 1
     set @cType = (select DATA_TYPE from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'TEST' AND COLUMN_NAME=@cName)

     if @cType = 'tinyint'
          set @SqlStr = ('alter table TEST alter column ' + @cName + ' int')
     else
     begin
          set @SqlStr =null
     end

exec(@SqlStr )
END

 
Gönderildi : 07/02/2017 12:31

Paylaş: