فرض کنید در برنامهی خود «کیف پولی» را طراحی کردهاید که بر اساس آن، کاربر میتواند خرید کند. این کیف پول، از Id کاربر و موجودی فعلی او تشکیل میشود: CREATE TABLE accounts (
user_id INTEGER PRIMARY KEY,
balance INTEGER NOT NULL
);
و برای مثال موجودی فعلی کاربر 1، مقدار 300 است: INSERT INTO accounts(user_id, balance)
VALUES (1, 300);
اکنون کوئریهای متداول زیر را که از یک read و سپس update تشکیل شدهاند، درنظ ...
استفاده یا عدم استفاده از یک تکنولوژی یا ابزار
خاص، به پارامترهای مختلفی از جمله ابعاد پروژه، مهارت و دانش اعضای تیم، ماهیت
پروژه، پلتفرم اجرا، بودجهی پروژه، مهلت تکمیل پروژه و تعداد نفرات تیم بستگی
دارد. بنابراین واضح است پیچیدن یک نسخهی خاص، برای همهی سناریوها امکان پذیر نیست؛ اما
شرایطی وجود دارد که استفاده یا عدم استفاده از این ابزارهای تکنولوژیک منطقیتر مینمایند. Stored Procedure (که از این ...
در مورد کتابخانهی SQLDom مطالبی را پیشتر در این سایت مطالعه کردهاید ( ^ و ^ ). یکی دیگر از کاربردهای آن، فرمت عبارات SQL است. برای مثال تبدیل عبارتی مانند SELECT * FROM tb1 WHERE x1 = '12';
به نمونهی فرمت شدهی آن: SELECT *
FROM tb1
WHERE x1 = '12';
برای اینکار میتوان از کلاس ذیل کمک گرفت: using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using ...
مدتی قبل مطلبی را در مورد کتابخانهی ویژه SQL Server که یک T-SQL Parser تمام عیار است، در این سایت مطالعه کردید . در این قسمت، همان مطلب را به نحو بهتر و سادهتری بازنویسی خواهیم کرد.
مشکلی که در دراز مدت با SQLDom وجود خواهد داشت، مواردی مانند SelectStarExpression و CreateProcedureStatement و امثال آن هستند. اینها را از کجا باید تشخیص داد؟ همچنین مراحل بررسی این اجزاء، نسبتا طولانی هستند و نیاز به یک راه حل عمومیتر در این زمین ...
مقدمه
SQL Server، با هر تقاضا به عنوان یک واحد مستقل رفتار میکند. در وضعیتهای پیچیده ای که فعالیتها توسط مجموعه ای از دستورات SQL انجام میشود، به طوری که یا همه باید اجرا شوند یا هیچکدام اجرا نشوند، این روش مناسب نیست. در چنین وضعیت هایی، نه تنها تقاضاهای موجود در یک دنباله به یکدیگر بستگی دارند، بلکه شکست یکی از تقاضاهای موجود در دنباله، به معنای این است که کل تقاضاهای موجود در دنباله باید لغو شوند، و تغییرات حاصل از ت ...
گاهی از اوقات نیاز است در کوئریها از بین چندین مقدار یکی انتخاب و بجای مقدار اصلی، رشته یا عبارتی جایگزین، نوشته شود. پر استفادهترین راه حل پیشنهادی، استفاده از عبارت case در داخل کوئری هست که بر اساس موارد ممکن، عبارتهای برگشتی نوشته میشود. این راه حل خوبی به نظر میرسد اما اگر تعداد گزینهها زیاد شود باعث شلوغ شدن متن کوئری و اشکال در بازبینی و نگهداری آن خواهد شد.
یک راه حل دیگر استفاده از توابع نوع Scalar میباشد؛ به ا ...
مقدمه
تکنولوژی CTE از نسخه SQL Server 2005 رسمیت یافته است و شامل یک result set موقتی[1] است که دارای نام مشخص بوده و میتوان از آن در دستورات SELECT, INSERT, UPDATE, DELETEاستفاده کرد. همچنین از CTE میتوان در دستور CREATE VIEW و دستور SELECT مربوط به آن استفاده کرد. در نسخه SQL Server 2008 نیز امکان استفاده از CTE در دستور MERGE فراهم شده است.
در SQL Serverاز دو نوع CTE بازگشتی[2] و غیر بازگشتی[3] پشتیبانی میشود. در ...
همانگونه که میدانید مقدار Identity پس از درج به آن تخصیص مییابد چنانچه بخواهید به این مقدار دسترسی پیدا کنید چندین روش به ازای اینکار وجود دارد که ما در این مقاله سه روش معمول را بررسی خواهیم نمود.1- استفاده از متغییر سیستمی Identity@@2- استفاده از تابع () Scope_Identity3- استفاده از تابع Ident_Currentهر سه این توابع مقدار Identity ایجاد شده برای جداول را نمایش میدهند. اما تفاوت هایی باهم دارند که در ادامه مقاله این تفاوتها بررسی شد ...
Identity یکی از Attributeهایی که در SQL Server به ازای Columnهای عددی میتوان در نظر گرفت. به طور خیلی ساده هنگامی که این Attribute به ازای یک فیلد عددی تنظیم گردد. چنانچه رکوردی در جدول مربوط به Identity درج شود فیلد Identity مقداری را به طور اتوماتیک دریافت خواهد نمود. نحوه دریافت مقدار به ازای فیلد Identity با توجه به آخرین مقدار آن و گام افزایش است که در هنگام ایجاد identity تعریف میگردد.برای ایجاد یک فیلد از نوع Identity میتوانید ز ...