Tip lập trình cho Database

1. Lấy kết quả từ một function trong SQL:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go– =============================================

— Author: huygamer
— Create date: 04/04/2013
— Description: Lấy dữ liệu từ Function
— =============================================
ALTER PROCEDURE [dbo].[sp_LapKanTut_Function]
@LKPar INT, @LKPar1 INT, @LKPar2 INT
AS
BEGIN
— SET NOCOUNT ON added to prevent extra result sets from
interfering with SELECT statements.
SET NOCOUNT ON;

— Insert statements for procedure here
SELECT * FROM [LapKan].[dbo].[F_LapKan_TestingFunct]( @LKPar, @LKPar1, @LKPar2)
END

=> Lấy dữ liệu từ trong một câu store để paste lên chương trình C#

2. Search in All Objects trong câu Store: (Stored Procedure)

Đoạn query sau sẽ tìm kiếm trên tất cả (bao gồm stored procedures, views, functions và các đối tượng khác)

SELECT OBJECT_NAME(OBJECT_ID), definition

FROM sys.sql_modules

WHERE definition LIKE ‘%’ + ‘lapKanSearchString’ + ‘%’

GO

3. Search in Stored Procedure: (Stored Procedure)

Đoạn query sau chỉ tìm kiếm trong stored procedure để chuỗi.

SELECT DISTINCT OBJECT_NAME(OBJECT_ID), object_definition(OBJECT_ID)

FROM sys.Procedures

WHERE object_definition(OBJECT_ID) LIKE ‘%’ + ‘lapKanSearchString’ + ‘%’

GO

4. Search trong tất cả các bảng (table) trong cơ sở dữ liệu: (Table)

USE LapKanDB
GO
SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%LapKanProperty%'
ORDER BY schema_name, table_name;

5. Lấy tất cả các cột trong chương trình:

SELECT t.name AS table_name,
SCHEMA_NAME(schema_id) AS schema_name,
c.name AS column_name
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
ORDER BY schema_name, table_name;

6. Tìm kiếm chuỗi trong nội dung của tất cả các bạn trong cơ sở dữ liệu:

/*
exec sp_System_SearchAllTables ”LapKan.Corp’
*/

ALTER PROC sp_System_SearchAllTables
(
@SearchStr nvarchar(100)
)
AS
BEGIN

— Copyright © 2013 Huygamer
— Mục đích: Tìm kiếm trên cơ sở dữ liệu
— Written by: Huygamer
— Site: https://huygamer.wordpress.com
— Ngày cập nhật: 25/06/2013

CREATE TABLE #Results (ColumnName nvarchar(500), ColumnValue nvarchar(4000))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET  @TableName = ”
SET @SearchStr2 = QUOTENAME(‘%’ + @SearchStr + ‘%’,””)

WHILE @TableName IS NOT NULL
BEGIN
SET @ColumnName = ”
SET @TableName =
(
SELECT MIN(QUOTENAME(TABLE_SCHEMA) + ‘.’ + QUOTENAME(TABLE_NAME))
FROM     INFORMATION_SCHEMA.TABLES
WHERE         TABLE_TYPE = ‘BASE TABLE’
AND    QUOTENAME(TABLE_SCHEMA) + ‘.’ + QUOTENAME(TABLE_NAME) > @TableName
AND    OBJECTPROPERTY(
OBJECT_ID(
QUOTENAME(TABLE_SCHEMA) + ‘.’ + QUOTENAME(TABLE_NAME)
), ‘IsMSShipped’
) = 0
)

WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
BEGIN
SET @ColumnName =
(
SELECT MIN(QUOTENAME(COLUMN_NAME))
FROM     INFORMATION_SCHEMA.COLUMNS
WHERE         TABLE_SCHEMA    = PARSENAME(@TableName, 2)
AND    TABLE_NAME    = PARSENAME(@TableName, 1)
AND    DATA_TYPE IN (‘char’, ‘varchar’, ‘nchar’, ‘nvarchar’)
AND    QUOTENAME(COLUMN_NAME) > @ColumnName
)

IF @ColumnName IS NOT NULL
BEGIN
INSERT INTO #Results
EXEC
(
‘SELECT ”’ + @TableName + ‘.’ + @ColumnName + ”’, LEFT(‘ + @ColumnName + ‘, 3630)
FROM ‘ + @TableName + ‘ (NOLOCK) ‘ +
‘ WHERE ‘ + @ColumnName + ‘ LIKE ‘ + @SearchStr2
)
END
END
END

SELECT ColumnName, ColumnValue FROM #Results
END

7. Lấy thời gian từ server:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

— =============================================
— Author:        Huynn
— Create date: 28/06/2013
— Description:    Lấy thời gian và trả về giá trị trực tiếp trong câu store
— =============================================

CREATE PROCEDURE [dbo].[sp_eHospital_LayServerDateTime]
@ThoiGianServer DateTime output
AS
BEGIN
SELECT @ThoiGianServer = CURRENT_TIMESTAMP
END

=> Với phương thức trả về trực tiếp sẽ không cần phải sinh ra thêm một đối tượng complex để trả về giá trị trong entity mà chỉ cần sử dụng Object Data là có thể lấy dữ liệu về được.

* Website tham khảo: http://blog.sqlauthority.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: