Forum
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
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;
bilinen kolonun değişmesi için değil c#'taki replace komutu gibi bir şey yazmak istiyorum
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
C# tarafında aşağıdaki şekilde cast edebilirsin;
int i = (byte)datarow["SÜTUN_ADI"];
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