نکات کاربردی

طبقه بندی موضوعی

آخرین مطالب

behrad nasehi
۰۹ شهریور ۹۵ ، ۰۰:۰۴ موافقین ۰ مخالفین ۰ ۰ نظر

فرض کنید محتوای جدول بصورت زیر باشد:

id       Name       Value
1          A          4
1          B          8
2          C          9

اگر بخواهیم خروجی بصورت زیر باشد:

id          Column
1          A:4, B:8
2          C:9

بصورت زیر عمل میکنیم:

CREATE TABLE #YourTable ([ID] INT, [Name] CHAR(1), [Value] INT)

INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'A',4)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,'B',8)
INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (2,'C',9)

SELECT 
  [ID],
  STUFF((
    SELECT ', ' + [Name] + ':' + CAST([Value] AS VARCHAR(MAX)) 
    FROM #YourTable 
    WHERE (ID = Results.ID) 
    FOR XML PATH(''),TYPE).value('(./text())[1]','VARCHAR(MAX)')
  ,1,2,'') AS NameValues
FROM #YourTable Results
GROUP BY ID

DROP TABLE #YourTable

How to use GROUP BY to concatenate strings in SQL Server?

behrad nasehi
۰۸ تیر ۹۵ ، ۱۴:۰۰ موافقین ۰ مخالفین ۰ ۰ نظر

A. Moving the tempdb database

The following example moves the tempdb data and log files to a new location as part of a planned relocation.

System_CAPS_ICON_note.jpg Note


Because tempdb is re-created each time the instance of SQL Server is started, you do not have to physically move the data and log files. The files are created in the new location when the service is restarted in step 3. Until the service is restarted, tempdb continues to use the data and log files in existing location.

  1. Determine the logical file names of the tempdb database and their current location on the disk.

    SELECT name, physical_name AS CurrentLocation  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    GO  
    
    
  2. Change the location of each file by using ALTER DATABASE.

    USE master;  
    GO  
    ALTER DATABASE tempdb   
    MODIFY FILE (NAME = tempdev, FILENAME = 'E:\SQLData\tempdb.mdf');  
    GO  
    ALTER DATABASE tempdb   
    MODIFY FILE (NAME = templog, FILENAME = 'F:\SQLLog\templog.ldf');  
    GO  
    
    
  3. Stop and restart the instance of SQL Server.

  4. Verify the file change.

    SELECT name, physical_name AS CurrentLocation, state_desc  
    FROM sys.master_files  
    WHERE database_id = DB_ID(N'tempdb');  
    
    
  5. Delete the tempdb.mdf and templog.ldf files from the original location.


Moving the tempdb database

behrad nasehi
۰۶ تیر ۹۵ ، ۱۱:۱۱ موافقین ۰ مخالفین ۰ ۰ نظر
SELECT TOP 10
d.object_id ,
d.database_id ,
OBJECT_NAME(object_id, database_id) 'proc name' ,
d.cached_time ,
d.last_execution_time ,
d.total_elapsed_time ,
d.total_elapsed_time / d.execution_count AS [avg_elapsed_time] ,
d.last_elapsed_time ,
d.execution_count
FROM sys.dm_exec_procedure_stats AS d
ORDER BY [total_worker_time] DESC;

sys.dm_exec_procedure_stats (Transact-SQL)

behrad nasehi
۰۲ تیر ۹۵ ، ۱۶:۱۳ موافقین ۰ مخالفین ۰ ۰ نظر

برای برطرف شدن خطایی که گاهی اوقات در فست ریپورت رخ میدهد، از مسیر زیر:

Users - UserName - AppData - Local - FastReport

فایل FastReport.config را حذف نمایید.


behrad nasehi
۲۹ فروردين ۹۵ ، ۱۴:۰۰ موافقین ۰ مخالفین ۰ ۰ نظر
USE Northwind
GO
--فعال سازی آمار مربوط به IO

SET STATISTICS IO ON
go
SELECT * FROM Orders

نتیجه مربوط به دستور فوق:

Table 'Orders'. Scan count 1, logical reads 22, physical reads 0, read-ahead reads 21, lob logical reads 0, lob physical reads 0, lob read-ahead reads 0.


behrad nasehi
۲۷ فروردين ۹۵ ، ۱۴:۳۸ موافقین ۰ مخالفین ۰ ۰ نظر

یکی از قابلیت‌های مفید مرورگرهای مختلف ، امکان ذخیره کلمات عبور سایت‌های مختلفی است که روزانه به آنها سر می‌زنید. با ذخیره این اطلاعات دیگر نیازی نیست تا مثلا برای هربار ورود به فیس بوک و یا بخش مدیریت وبلاگ‌تان نام کاربری و کلمه عبور آن را وارد کنید . اما این قابلیت تنها هنگامی مفید است که رایانه‌ای که با آن کار میکنید مختص به خودتان باشد و افراد دیگری از آن استفاده نکنند … به همین دلیل همیشه مرورگرها قبل از ذخیره کلمات عبور از کاربر درخواست تاییدیه میگیرند .

مثلا فرض کنید در رایانه یک کافی نت قصد دارید تا اکانت فیس‌بوکتان را چک کنید یا با ورود به بخش مدیریت وبلاگ‌تان اقدام به ارسال یک مطلب جدید کنید … در صورتی که پیغام ذخیره کلمه عبور را تایید کنید علاوه بر اینکه نفر بعدی که از آن سیستم در کافی‌نت استفاده می‌کند به راحتی میتواند وارد اکانت شما بشود (چرا که برای ورود نیازی به وارد کردن کلمه عبور ندارد) حتی می‌تواند کلمه عبور شما را نیز مشاهده کند … آن هم بدون نیاز به هیچ نرم افزار جانبی خاصی !

ممکن است این سوال برایتان پیش آید که: مگر کلمات عبور مخفی نیستند؟ پس چگونه کلمات عبور قابل نمایش هستند؟

در این مطلب یک ترفند ساده و جالب معرفی میکنیم که از طریق آن میتوانید در مرورگر خود به راحتی کلمات عبور ذخیره شده را همانند شکل زیر مشاهده کنید:

reveal-hidden-passwords-in-browsers.gif

با بادگیری این ترفند علاوه بر آنکه با خطرات ذخیره کلمات عبور در رایانه های دیگر بیشتر آشنا میشوید ، یاد خواهید گرفت که مثلا اگر کلمه عبور یکی از اکانت‌هایتان را که قبلا ذخیره کرده بودید و الان آن را فراموش کرده اید آن را نمایش دهید تا از آن مطلع شوید.

خوب بیایید شروع کنیم .

مراحل کار در مرورگرهای مختلف از جمله IE یا Firefox و Chrome و Opera تقریبا مشابه یکدیگر است .

به عنوان مثال ما از مرورگر گوگل کروم استفاده کرده‌ایم :

ابتدا با استفاده از ماوس کلمه عبور ذخیره شده را انتخاب کنید تا های لایت شود (یک راه ساده دوبار کلیک سریع در کادر کلمه عبور هست). سپس کلیک راست کنید و گزینه Inspect element را انتخاب کنید .

reveal-hidden-passwords-in-browsers-1

حالا باید در پایین صفحه مرورگرتان یک بخش اضافه نمایان شود که حاوی کدهای HTML است … چیزی شبیه به تصویر زیر :

reveal-hidden-passwords-in-browsers-2

سپس در خطی که به رنگ آبی انتخاب شده است به دنبال عبارت input type=password بگردید. همانند شکل زیر :

reveal-hidden-passwords-in-browsers-3

حالا جلوی عبارت input type دوبار کلیک کنید تا کلمه‌ی Password انتخاب شود . سپس به جای کلمه password عبارت text را بنویسید :

reveal-hidden-passwords-in-browsers-4

کار تمام است !

حالا نگاهی به کادر کلمه عبور ذخیره شده بیاندازید … کلمه عبور را به راحتی مشاهده و حتی میتوانید آن را کپی کنید … کاری که تا قبل از این نمی‌توانستید.


نکته‌های مهم:
* اگر صفحه را مجدداً Refresh کنید ، تنظیمات به حالت قبل بازگشته و مجددا کلمه عبور مخفی خواهد شد و برای مشاهده هر کلمه عبور هربار بایست همین مراحل را تکرار کنید.
* از این ترفند می‌توانید برای هنگامی که کلمه عبور ذخیره شده در مرورگرتان را فراموش کرده اید استفاده کرده و به راحتی آن را مشاهده کنید.
* فکر کنم حالا بیشتر به  فکر امنیت اکانت‌های خود فکر می‌کنید و زین پس برای ذخیره کلمات عبور اکانت‌های مختلف خود محتاط‌تر عمل خواهید کرد.
* اکیدا توصیه میکنم در رایانه‌های محل کار یا رایانه‌های دوستان و اقوام و یا کافی‌نت‌ها با احتیاط عمل کنید … یکی از بهترین قابلیت‌های  مرورگرهای جدید امکان استفاده از مرورگر در حالت Private Browsing میباشد . در این حالت پس از پایان استفاده از مرورگر و بستن آن ، به صورت اتوماتیک تمام ردپاهای شما و سایتهای مشاهده شده و یا کلمات عبور ذخیره شده حذف می‌شوند و اثری از فعالیت شما در رایانه باقی نمی‌ماند . برای فعال کردن این قابلیت میتوانید در هنگام شروع استفاده از مرورگر آن را در حالت Private Browsing مورد استفاده قرار دهید که اصولا در همان منوهای اولیه مرورگر آن را خواهید یافت و یا میتوانید از کلیدهای میانبر برای فعال کردن این حالت استفاده کنید . مثلا برای فعال کردن Private Browsing در مرورگر گوگل کروم کافی‌است کلیدهای Shift + Ctrl + N را فشار دهید و یا در مرورگرفایرفاکس از کلیدهای ترکیبی Shift + Ctrl + P استفاده کنید .

behrad nasehi
۲۶ بهمن ۹۴ ، ۱۹:۴۸ موافقین ۰ مخالفین ۰ ۰ نظر

فرض کنیم دو جدول بشکل زیر را داریم:

جدول Factor

CREATE TABLE Factor(    [id] [BIGINT] IDENTITY(1,1) NOT NULL,    [salmali] [BIGINT] NOT NULL,    [shomare] [BIGINT] NOT NULL,    [tarikhe] [NVARCHAR](10) NOT NULL )

جدول جزییات Factor_Copy

CREATE TABLE Factor_Copy(    [id] [BIGINT] IDENTITY(1,1) NOT NULL,    [salmali] [BIGINT] NOT NULL,    [shomare] [BIGINT] NOT NULL,    [tarikhe] [NVARCHAR](10) NOT NULL )


اگر بخواهیم رکوردهای جدول Factor را در Factor_Copy درج کنیم کدی بشکل زیر مینویسیم

insert into Factor_Copy ( salmali, shomare, tarikhe )select salmali,shomare,tarikhefrom Factor

اگر بخواهیم کدهای identity ایجاد شده در جدول Factor_Copy و کد مرتبط با جدول Factor را بدست آوریم باید بشکل زیر عمل کنیم:

MERGE Factor_Copy as targetUSING    (        SELECT *        FROM    Factor        ) AS sourceON     (1=0) -- make sure the result is FalseWHEN NOT MATCHED BY TARGET THEN   insert  ( salmali, shomare, tarikhe)    VALUES (source.salmali,source.shomare,source.tarikhe)    OUTPUT $action,source.id, INSERTED.* INTO #tmp;    

How can I populate a table that must hold the linkbetween the id's of records in the old database table and the new database table?

behrad nasehi
۰۸ بهمن ۹۴ ، ۱۳:۲۵ موافقین ۱ مخالفین ۰ ۰ نظر
^(\d{4}\/(0[1-9]|1[012])\/(0[1-9]|[12][0-9]|3[01]))


http://regexr.com/3chbi

behrad nasehi
۲۴ دی ۹۴ ، ۱۱:۵۲ موافقین ۰ مخالفین ۰ ۰ نظر
behrad nasehi
۲۳ دی ۹۴ ، ۲۱:۳۴ موافقین ۰ مخالفین ۰ ۰ نظر