Archyvas

Įrašo tag'ai: ‘microsoft sql server 2005’

SQL funkcijų vykdymas

Birželis 19th, 2008 Ernestas Kardzys Nėra komentarų

Su tokia nedidele problemėle susidūriau, bet išsprendžiau. Kad žmonės per daug nesikankintų, sugrūsiu ir čia sprendimą. Kad būtų aišku, viskas vykdoma ant Microsof SQL Server Management Studio (geras daiktas, jei naudojate SQL serverį, tuojau pat pumpuokitės iš Microsoft tinklalapių).

Turime baisiai gerą ir naudingą SQL funkciją:

ALTER FUNCTION [dbo].[GetUserID]
(
– Add the parameters for the function here
@Name nvarchar(250)
)
RETURNS nvarchar(250)
AS
BEGIN
– Declare the return variable here
DECLARE @Result nvarchar(250)

– Add the T-SQL statements to compute the return value here
SELECT @Result=UserID FROM Users WHERE UserName=@Name

– Return the result of the function
RETURN @Result

END

Kaip matome, šis gėris gražina nvarchar(250). Mums reikia kaip nors įvykdyti šį programavimo minties stebuklą. Tad keverzojame:

SELECT dbo.GetUserID(‘Petras’)

Kaip atsakymą gausime:

(No column name)

17

Aišku, skaičius bus kitas :D Bet gali nepatikti tai, kad nėra stulpelio pavadinimo. Tad “paturbiname” užklausą:

SELECT dbo.GetUserID(‘Petras’) AS UserID

Gauname:

UserID

17

SQL. Žmogaus amžiaus apskaičiavimas SQL

Birželis 12th, 2008 Ernestas Kardzys 2 komentarai

Atrodytų paprasta problemėlė, bet kaip tai realizuoti – reikia pamąstyti. Principas paprastas: turime šios dienos datą, iš jos atimame žmogaus gimimo datą ir gaunam amžių. “Power and Simplicity” – jeigu panaudosime Mambo šūkį.

http://www.sqlhacks.com/index.php/Dates/Person-Age <- Naudingas tinklapis.

Aš tai realizavau taip:

DECLARE @Age int
DECLARE @HumanID int
SET @HumanID = 10
DECLARE @BirthDate datetime
SELECT @BirthDate=BirthDate FROM Human WHERE HumanID=@HumanID
SELECT @BirthDate
SELECT @Age=datediff(day,@BirthDate,CURRENT_TIMESTAMP) / 365
RETURN @Age

Kaip padaryti lentelės kopiją SQL

Gegužė 9th, 2008 Ernestas Kardzys 4 komentarai

Jeigu Jūms prireikė padaryti SQL DB serverio lentelės kopiją galima tai padaryti su INSERT INTO sakiniu:

SELECT <ką_kopijuoti> INTO <naujos_lentelės_pavadinimas> FROM <iš_kur_kopijuojame>

Pvz.: SELECT * INTO atsargine_kopija FROM vartotojai

http://www.w3schools.com/Sql/sql_select_into.asp