CREATE FUNCTION [dbo].[InitCap] ( @InputString varchar(4000) )
RETURNS VARCHAR(4000)
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @PrevChar CHAR(1)
DECLARE @OutputString VARCHAR(255)
SET @OutputString = LOWER(@InputString)
SET @Index = 1
WHILE @Index <= LEN(@InputString)
BEGIN
SET @Char = SUBSTRING(@InputString, @Index, 1)
SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
ELSE SUBSTRING(@InputString, @Index - 1, 1)
END
IF @PrevChar IN (' ', ';', ':', '!', '?', ',', '.', '_', '-', '/', '&', '''', '(')
BEGIN
IF @PrevChar != '''' OR UPPER(@Char) != 'S'
SET @OutputString = STUFF(@OutputString, @Index, 1, UPPER(@Char))
END
SET @Index = @Index + 1
END
RETURN @OutputString
END
GO
http://www.sql-server-helper.com/functions/initcap.aspx
initcap: set first letter uppercase, rest of other lowercase
bir tablo uzerinden iliskili diger tabloyu guncelleme
UPDATE TABLE1
SET Column1 = (SELECT TABLE2.Column1
FROM TABLE2
WHERE TABLE2.IDColumn = TABLE1.IDColumn)
update yayin
set ukod = s.ukod
from yayin y, sayfa1$ s
where s.yayinno = y.yayinno
Etiketler: sql , update related table
bir tablonun id alanina deger atamak
DECLARE @ID decimal
SET @ID = 0
DECLARE #cursor CURSOR FOR
(SELECT _ID FROM _TABLE)
OPEN #cursor
FETCH NEXT FROM #cursor
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE _TABLE
SET _ID = @ID + 1
WHERE CURRENT OF #cursor
SET @ID = @ID + 1
FETCH NEXT FROM #cursor
END
CLOSE #cursor
DEALLOCATE #cursor
Etiketler: current of , cursor , identity column , sql
kayıt silmede foreign key engeli nasıl aşılır
foreign key nedeniyle silinemeyen kayıtlar için şu bir çözüm olabilir mi:
1. durum:
örneğin product için en fazla 1 category belirtilebilecek bile olsa, bunu product_category tablosunda tutarak, istendiğinde category'yi silebiliriz ve product çekilirken category çekilmez, bu da herhangi bir sorun oluşturmaz.
cascade bir çözüm olabilir mi?
bir category sileceğim diye bu category'deki bütün product'ları silmenin anlamı var mı?
2. durum:
prod_usagearea tablosu için örnek:
prodid ve usageareaid foreignkey
The DELETE statement conflicted with the REFERENCE constraint "FK_Prod_UsageArea_UsageArea1". The conflict occurred in database "Himerpa", table "dbo.Prod_UsageArea", column 'UsageAreaID'.
The statement has been terminated.
çözüm: delete rule : cascade
Etiketler: foreign key , sql
sql - update table with join
-- 2 related tables
update t1
set t1.Field = t2.Field
from Table1 t1
join Table2 t2 on t1.id = t2.id
-- 3 related tables
update t1 p
set t1.f1 =
(
select distinct t3.f3
from t3
inner join t2 on t2.f2 = t3.f3
where t2.f2 = t1.f1
order by t3.f3
)
Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1
Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1
Etiketler: begin try , sql , tran , transaction
Veri çekme teknikleri - 1
sql dönen kayıt sayısını sınırlamak
Declare @RowCount int
Etiketler: kayıt sayısı , rowcount , sql , sql server