دستورات کاربردی در SQL Server که هر برنامه نویس احتیاج دارد

1402/07/18 · عباس کردیان
دستورات جالب در SQL Server

 

  • پاک کردن تمام SP های یک دیتابیس
DECLARE @procedureName varchar(500)
DECLARE cur CURSOR
      FOR SELECT [name] FROM sys.objects WHERE type = 'p'
      OPEN cur      FETCH NEXT FROM cur INTO @procedureName
      WHILE @@fetch_status = 0
      BEGIN
            EXEC('DROP PROCEDURE ' + @procedureName)
            FETCH NEXT FROM cur INTO @procedureName
      END
      CLOSE cur
      DEALLOCATE cur 

 

DBCC CHECKIDENT ('نام جدول', RESEED, 0);

 

  • دستور Join ( الحاق کردن یک جدول ) به جدول دیگر
  1. INNER JOIN
  2. LEFT JOIN
  3. RIGHT JOIN
  4. FULL JOIN
SELECT Table1.Column1,Table1.Column2,Table2.Column1,....
FROM Table1
INNER JOIN Table2
ON Table1.MatchingColumnName = Table2.MatchingColumnName;

SELECT Table1.Column1,Table1.Column2,Table2.Column1,....
FROM Table1
FULL JOIN Table2
ON Table1.MatchingColumnName = Table2.MatchingColumnName;

SELECT Table1.Column1,Table1.Column2,Table2.Column1,....
FROM Table1
LEFT JOIN Table2
ON Table1.MatchingColumnName = Table2.MatchingColumnName;

SELECT Table1.Column1,Table1.Column2,Table2.Column1,....
FROM Table1
RIGHT JOIN Table2
ON Table1.MatchingColumnName = Table2.MatchingColumnName;

 

  • دستور Union ( ترکیب )
    • Union یک دستور بسیار عالی است. این دستور امکان ترکیب ردیف‌ها با یکدیگر را می‌دهد. برخلاف دستور joins که ستون‌های مطابق را به هم الحاق می‌کرد، دستور union می‌تواند ردیف‌های نامرتبط را به این شرط که تعداد و نام ستون یکسانی داشته باشند، به همدیگر ملحق کند. نحوه استفاده از آن در مثال زیر مشخص شده است
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;

 

  • پیدا کردن یک جدول در دیتابیس
SELECT TABLE_NAME FROM [IranCity].INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE'  
AND TABLE_NAME <> 'dtproperties'  
ORDER BY TABLE_NAME

 

بدست آوردن لیست فیلدهای یک جدول

SELECT  Cols.TABLE_NAME,
        Cols.COLUMN_NAME,
        Cols.ORDINAL_POSITION,
        Cols.DATA_TYPE,
		Cols.NUMERIC_PRECISION,
		Cols.NUMERIC_SCALE,		
        Cols.IS_NULLABLE,
        Cols.CHARACTER_MAXIMUM_LENGTH,       
        COLUMNPROPERTY(object_id(Cols.TABLE_NAME), Cols.COLUMN_NAME, 'IsIdentity') AS IsIdentity,
        ( SELECT    COUNT(KCU.COLUMN_NAME)
          FROM      INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU
                    INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS TC ON KCU.TABLE_NAME = TC.TABLE_NAME
                                                                          AND KCU.CONSTRAINT_NAME = TC.CONSTRAINT_NAME
                                                                          AND TC.CONSTRAINT_TYPE = 'PRIMARY KEY'
          WHERE     KCU.TABLE_NAME = Cols.TABLE_NAME
                    AND KCU.COLUMN_NAME = Cols.COLUMN_NAME
        ) AS IsIndex
FROM    [INFORMATION_SCHEMA].[COLUMNS] Cols
ORDER BY Cols.TABLE_NAME,
        Cols.ORDINAL_POSITION

 

 

Identity Seed SQL INNER JOIN LEFT JOIN RIGHT JOIN FULL JOIN CURSOR Union TABLE_NAME COLUMN_NAME

نظرات (0)