sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

14 Mayıs 2008 Çarşamba

5 Şubat 2008 Salı

Sql Server - Identity Column resetlemek

Sql Server'da bir tablo icerisinde bulunan, identity kolonu resetlemek yada identity baslangic numarasini vermek icin asagidaki DBCC ifadesi kullanilabilir.

DBCC (Database Console Commands) CHECKIDENT ifadesinin son parametresini istenilen baslangic degeri atilir. "0" degeri vererek identity kolonu resetleyelim.

USE TestDB
GO
DBCC CHECKIDENT (TestTable, RESEED, 0)
GO


DBCC (Database Console Commands) in diger ifadelerinin listesini ve aciklamasini asagidaki linkden bulabilirsiniz.

http://msdn2.microsoft.com/en-us/library/aa258281.aspx

22 Ocak 2008 Salı

SQL Server - T-Sql ile Dosya boyutunu bulma

CREATE FUNCTION udf_GetFileSize (@filename varchar(1000))
returns bigint
as
BEGIN
DECLARE @FS int
DECLARE @OLEResult int
DECLARE @FileID int
DECLARE @Size bigint
DECLARE @Flag bigint

Set @size =0
Set @Flag =0

EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUT
EXECUTE @OLEResult = sp_OAMethod @FS, 'GetFile', @FileID OUT,@filename

IF @OLEResult <> 0
begin
set @Flag =-1
end
else
begin
EXECUTE @OLEResult = sp_OAGetProperty @FileId,'Size', @Size OUT
IF @OLEResult <> 0
begin
set @Flag =-2
end
end

EXECUTE @OLEResult = sp_OADestroy @FileID
EXECUTE @OLEResult = sp_OADestroy @FS

if @flag <> -1 and @flag <> -2
begin
set @flag = @size
end
return @flag
END

'Kullanimi
select dbo.udf_GetFileSize ('c:\temp\test.txt')

6 Ağustos 2007 Pazartesi

Bir resultsetden split edilmis string olusturmak

Sql Server üzerinde yaratacagimiz bu UDF, özellikle Reporting konusunda kullanilabilecek bir function örnegidir.

Örnegimizde Northwind veritabani kullaniyoruz.
Bunun icin öncelikle veritabaninda "GetProductIDs" isimli bir UDF olusturuyoruz. Fonksiyonumuz parametere olarak OrderID alacak ve OrderDetails tablosunda bu OrderID ye ait olan kayitlardaki ProductID leri bize virgül ile ayrilmis sekilde varchar olarak döndürecek.

CREATE FUNCTION [dbo].[GetProductIDs]
(
@OrderID int
)
RETURNS nvarchar(MAX)
AS
BEGIN

DECLARE @productIDList nvarchar(MAX)

SELECT @productIDList = COALESCE(@productIDList + ', ', '') +
CAST(ProductID AS varchar(20))
from dbo.[Order Details] Where OrderID = @OrderID

return @productIDList
END;


Fonksiyonumuz database üzerinde yaratildiktan sonra, su sekilde fonksiyonumuzu test edebiliriz.

Select dbo.GetProductIDs(OrderID) as ProductIDs from dbo.Orders



27 Temmuz 2007 Cuma

Multi Parameter > Where IN clause

SQL Split UDF:

if exists (select * from dbo.sysobjects where id =
object_id(N'[dbo].[UTILfn_Split]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[UTILfn_Split]
GO

create function dbo.UTILfn_Split(
@String nvarchar (4000),
@Delimiter nvarchar (10)
)
returns @ValueTable table ([Value] nvarchar(4000))
begin
declare @NextString nvarchar(4000)
declare @Pos int
declare @NextPos int
declare @CommaCheck nvarchar(1)

--Initialize
set @NextString = ''
set @CommaCheck = right(@String,1)

--Check for trailing Comma, if not exists, INSERT
--if (@CommaCheck <> @Delimiter )
set @String = @String + @Delimiter

--Get position of first Comma
set @Pos = charindex(@Delimiter,@String)
set @NextPos = 1

--Loop while there is still a comma in the String of levels
while (@pos <> 0)
begin
set @NextString = substring(@String,1,@Pos - 1)

insert into @ValueTable ( [Value]) Values (@NextString)

set @String = substring(@String,@pos +1,len(@String))

set @NextPos = @Pos
set @pos = charindex(@Delimiter,@String)
end

return
end


--------

DECLARE @params nvarchar(100)
SET @params='962, 979, 971'

select * from dbo.TABLETEST
where ID IN (select * from dbo.UTILfn_Split(@params,','))