คำถามติดแท็ก sql-server

Microsoft SQL Server ทุกรุ่น (ไม่ใช่ MySQL) โปรดเพิ่มแท็กเฉพาะเวอร์ชันเช่น sql-server-2016 เนื่องจากมักเกี่ยวข้องกับคำถาม

5
ทำไม datetime การค้นหาของฉันจึงไม่ตรงกัน
select * from A where posted_date >= '2015-07-27 00:00:00.000' and posted_date <= '2015-07-27 23:59:59.999' แต่ผลลัพธ์มีบันทึกที่โพสต์วันนี้: 2015-07-28 เซิร์ฟเวอร์ฐานข้อมูลของฉันไม่ได้อยู่ในประเทศของฉัน อะไรคือปัญหา ?

4
ตัวช่วยสร้างการคืนค่า SQL Server 2012 หยุดทำงาน
ฉันมีแล็ปท็อปสำหรับการพัฒนาที่มี SSMS Express 2012 พร้อมอินสแตนซ์ 2012 db และอินสแตนซ์ 2008 db ใช้การกำหนดค่านี้มานานกว่าหนึ่งปีแล้ว ทันใดนั้นฉันไม่สามารถใช้ตัวช่วยการคืนค่าได้ ตัวช่วยจะเลือกไฟล์สำรอง แต่เมื่อฉันเลือกตัวเลือก "ไฟล์" ที่ด้านบนซ้ายเพื่อกำหนดตำแหน่งของ MDF และ LDF กล่องโต้ตอบจะหยุดทำงาน ฉันพยายามซ่อมไม่มีโชค
20 sql-server 

1
ไม่แสดงพรอมต์ SSMS เพื่อบันทึกการเปลี่ยนแปลง
เป็นไปได้หรือไม่ที่จะกำหนดค่า SQL Server Management Studio (SSMS) เพื่อให้กล่องโต้ตอบที่แสดงด้านบนไม่ปรากฏขึ้นเมื่อฉันปิดหน้าต่างแบบสอบถามที่ไม่ได้บันทึก?

1
ฉันควรตื่นตระหนกโดยคำเตือน NO NO JOIN PREDICATE หรือไม่?
ฉันกำลังแก้ไขปัญหาบิตและชิ้นส่วนของกระบวนงานที่เก็บไว้ที่มีประสิทธิภาพต่ำ ส่วนนี้ของขั้นตอนการส่งคำเตือน NO JOIN PREDICATE select method = case methoddescription when 'blah' then 'Ethylene Oxide' when NULL then 'N/A' else methoddescription end, testmethod = case methoddescription when 'blah' then 'Biological Indicators' when NULL then 'N/A' else 'Dosimeter Reports' end, result = case when l.res is null or l.res <> 1 …

2
การหักสิทธิ์ NTFS สำหรับ SQLEXPRESS $ MSSQL
ฉันได้รับการ "รักษาความปลอดภัย" เซิร์ฟเวอร์ฐานข้อมูลของเรา ในการทำเช่นนี้ฉันได้ลบการอนุญาตบางส่วนออกจากโฟลเดอร์ที่ติดตั้ง SQL Express ไว้ D:\SQL D:\SQL\Data D:\SQL\Backup etc.. ฉันได้รับอนุญาตในโฟลเดอร์ Data เหมือนเดิม แต่ฉันได้ลบสิ่งที่ฉันคิดว่าไม่ต้องการออกจากคนอื่น ตอนนี้ฉันไม่สามารถสำรองฐานข้อมูล หากฉันลองเลือกตำแหน่งสำรองข้อมูลไดอะล็อกจะไม่แสดงข้อมูลใด ๆ ในโฟลเดอร์ d: \ SQL และถ้าฉันใส่เส้นทางด้วยตัวเองมันจะบอกสิ่งนี้กับฉัน: - ไม่สามารถเข้าถึงพา ธ หรือไฟล์ที่ระบุบนเซิร์ฟเวอร์ ตรวจสอบว่าคุณมีสิทธิ์การรักษาความปลอดภัยที่จำเป็นและมีเส้นทางและไฟล์อยู่ ... ดูเหมือนว่าปัญหาการอนุญาตโฟลเดอร์ การกำหนดค่าเซิร์ฟเวอร์อื่นในทำนองเดียวกันมีพวงของ "อนุญาตให้" สิทธิ์สำหรับบัญชีที่เรียกว่า " MSSQL$SQLEXPRESS" (ซึ่งฉันรู้ว่าฉันลบ) แต่ฉันไม่สามารถเพิ่มสิทธิ์เหล่านี้เพราะไม่มีเช่นกลุ่ม , ผู้ใช้หรือสร้าง - ในหลักการความปลอดภัยบนเซิร์ฟเวอร์ ฉันจะเพิ่มการอนุญาตสำหรับMSSQL$SQLEXPRESSบัญชีนี้ได้อย่างไร

2
คุณสามารถอธิบายแผนการดำเนินการนี้ได้หรือไม่
ฉันกำลังค้นคว้าอย่างอื่นเมื่อฉันเจอสิ่งนี้ ฉันกำลังสร้างตารางทดสอบที่มีข้อมูลอยู่ในนั้นและเรียกใช้คิวรีที่แตกต่างกันเพื่อค้นหาว่าวิธีการเขียนคิวรีต่างกันมีผลต่อแผนการดำเนินการอย่างไร นี่คือสคริปต์ที่ฉันใช้ในการสร้างข้อมูลทดสอบแบบสุ่ม: IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID('t') AND type in (N'U')) DROP TABLE t GO CREATE TABLE t ( c1 int IDENTITY(1,1) NOT NULL ,c2 int NULL ) GO insert into t select top 1000000 a from (select t1.number*2048 + t2.number a, newid() b …

2
จะเพิ่มปุ่ม Debug ใน SSMS v18 ได้อย่างไร?
Debugปุ่มเป็นปัจจุบันอยู่กับรุ่นของ SSMS นี้: แต่มันไม่ได้อยู่ในรุ่น 18 แสดงตัวอย่าง 4: ฉันลองหลายวิธีเพื่อเพิ่มDebugปุ่มลงใน SSMS ของฉัน แต่ไม่ประสบความสำเร็จ มีวิธีเพิ่มDebugปุ่มใน SSMS v18 หรือไม่
20 sql-server  ssms 

6
SQL Server รองรับ GREATEST และ LEAST หรือไม่หากไม่ใช่วิธีแก้ไขปัญหาทั่วไป
การตรวจสอบคำถามนี้ดูเหมือนว่าเป็นงานที่ไม่ควรทำ พวกเขากำลังพยายามขยายช่วงด้วยวันที่ ในฐานข้อมูลอื่นคุณจะใช้greatestและleast.. least(extendDate,min), greatest(extendDate,max) เมื่อฉันพยายามใช้สิ่งเหล่านี้ฉันก็จะได้ 'least' is not a recognized built-in function name. 'greatest' is not a recognized built-in function name. ที่จะครอบคลุมนามสกุลในทิศทางใดทิศทางหนึ่ง สำหรับวัตถุประสงค์ของคำถามคุณยังคงต้องทำการเปลี่ยนช่วงพิเศษ ฉันแค่สงสัยว่าผู้ใช้ SQL Server ใช้รูปแบบแบบสอบถามเพื่อเลียนแบบleastและการgreatestทำงานได้อย่างไร PostgreSQL GREATEST/LEAST MySQL GREATEST/LEAST MariaDB GREATEST LEAST DB2 GREATEST LEAST คำพยากรณ์ GREATEST LEAST คุณคลายเงื่อนไขลงในCASEข้อความสั่งหรือมีส่วนเสริม, โปรแกรมเสริมของบุคคลภายนอกหรือใบอนุญาตจาก Microsoft ที่เปิดใช้งานฟังก์ชันนี้หรือไม่?

1
เหตุใดการวนซ้ำอย่างง่ายใน ASYNC_NETWORK_IO จึงรออยู่
T-SQL ต่อไปนี้ใช้เวลาประมาณ 25 วินาทีในเครื่องของฉันด้วย SSMS v17.9: DECLARE @outer_loop INT = 0, @big_string_for_u VARCHAR(8000); SET NOCOUNT ON; WHILE @outer_loop < 50000000 BEGIN SET @big_string_for_u = 'ZZZZZZZZZZ'; SET @outer_loop = @outer_loop + 1; END; มันสะสม 532 มิลลิวินาทีของASYNC_NETWORK_IOรอตามทั้งสองและsys.dm_exec_session_wait_stats sys.dm_os_wait_statsเวลารอทั้งหมดจะเพิ่มขึ้นตามจำนวนการวนซ้ำที่เพิ่มขึ้น เมื่อใช้wait_completedเหตุการณ์ที่ขยายออกไปฉันจะเห็นว่าการรอเกิดขึ้นประมาณทุกๆ 43 มิลลิวินาทีโดยมีข้อยกเว้นบางประการ: นอกจากนี้ฉันจะได้รับสแต็คการโทรที่เกิดขึ้นก่อนASYNC_NETWORK_IOรอ: sqldk.dll!SOS_DispatcherBase::GetTrack+0x7f6c sqldk.dll!SOS_Scheduler::PromotePendingTask+0x204 sqldk.dll!SOS_Task::PostWait+0x5f sqldk.dll!SOS_Scheduler::Suspend+0xb15 sqllang.dll!CSECCNGProvider::GetBCryptHandleFromAlgID+0xf6af sqllang.dll!CSECCNGProvider::GetBCryptHandleFromAlgID+0xf44c sqllang.dll!SNIPacketRelease+0xd63 sqllang.dll!SNIPacketRelease+0x2097 sqllang.dll!SNIPacketRelease+0x1f99 sqllang.dll!SNIPacketRelease+0x18fe …
19 sql-server  ssms 

2
Quantum ของ Windows OS เทียบกับ Quantum ของ SQL OS
คำถามง่าย ๆ SQL Server Quantum (4 ms) มีการซิงโครไนซ์กับ Quantum Server OS อย่างไร (ปกติ: 187.5 ms) อธิบายคำถามง่าย ๆ หลังจากที่ใช้ควอนตัม OS 184 ms (ซึ่งสอดคล้องกับควอนตัม SQL แบบเต็ม 46) ควอนตัม OS นั้นมีเวลา 3.5 มิลลิวินาทีก่อนที่มันจะต้องส่งมอบตารางเวลาให้กับกระบวนการอื่น SQL OS เริ่มต้นควอนตัม (4 ms) และหลังจาก 3.5 ms, ควอนตัม OS ได้ตัดสินใจที่จะหยุดเธรด SQL OS ปัจจุบันซึ่งยังคงมี 0.5 มิลลิวินาทีก่อนที่มันจะให้ผลตามกำหนดเวลา เกิดอะไรขึ้น? Dive Deep บน …
19 sql-server 

4
การเรียกใช้ SQL ซ้ำใช้งานได้จริงอย่างไร
เมื่อมาถึง SQL จากภาษาการเขียนโปรแกรมอื่นโครงสร้างของเคียวรีแบบเรียกซ้ำจะค่อนข้างแปลก เดินผ่านทีละขั้นตอนและดูเหมือนว่าจะกระจุย ลองพิจารณาตัวอย่างง่ายๆดังต่อไปนี้: CREATE TABLE #NUMS (N BIGINT); INSERT INTO #NUMS VALUES (3), (5), (7); WITH R AS ( SELECT N FROM #NUMS UNION ALL SELECT N*N AS N FROM R WHERE N*N < 10000000 ) SELECT N FROM R ORDER BY N; ลองเดินดูกัน ขั้นแรกสมาชิกจุดยึดดำเนินการและชุดผลลัพธ์ถูกใส่ใน R ดังนั้น R …

1
จะปลอดภัยหรือไม่ที่จะพึ่งพาคำสั่งของส่วนคำสั่งเอาท์พุทของ INSERT?
รับตารางนี้: CREATE TABLE dbo.Target ( TargetId int identity(1, 1) NOT NULL, Color varchar(20) NOT NULL, Action varchar(10) NOT NULL, -- of course this should be normalized Code int NOT NULL, CONSTRAINT PK_Target PRIMARY KEY CLUSTERED (TargetId) ); ในสองสถานการณ์ที่แตกต่างกันเล็กน้อยฉันต้องการแทรกแถวและคืนค่าจากคอลัมน์ข้อมูลประจำตัว สถานการณ์ 1 INSERT dbo.Target (Color, Action, Code) OUTPUT inserted.TargetId SELECT t.Color, t.Action, …

3
เพิ่มประสิทธิภาพการแทรกภายใต้ภาระ: ทำไม?
ฉันมีโค้ดที่ทำหน้าที่แทรกลงในตารางที่มีความผิดปกติอย่างมาก ตารางมีจำนวนคอลัมน์ตั้งแต่ ~ 100 ถึง 300+ นี่คือ SQL Server 2008 R2 ทำงานบน Windows Server 2008 แต่ละแทรกประกอบด้วยการแทรกจำนวนตารางภายใต้การทำธุรกรรมเดียวกัน เม็ดมีดบางรุ่นจะถูกแบตช์โดย NHibernate แต่บางอันไม่สามารถทำได้ แต่ทั้งหมดนั้นอยู่ภายใต้ธุรกรรมเดียวกันอย่างไรก็ตาม เมื่อฉันทำการแทรกประมาณ 500 ครั้งโดยการเรียกรหัสที่มีการแทรกซ้ำหลายครั้งฉันจะได้รับค่าเฉลี่ย ~ 360 ms บิตแปลกคือเมื่อฉันเรียกใช้รหัสทดสอบพร้อมกันโดยใช้ 4 กระบวนการ (exe เดียวกันทำงานจาก 4 พร้อมรับคำสั่งที่แตกต่างกันภายใต้ windows server 2008) ประสิทธิภาพการแทรกต่อการโทรดีขึ้นมาก ฉันเห็นการระเบิดที่ความเร็ว 90 มิลลิวินาที (เกือบ X4 เร็วขึ้น) ฉันวัดเวลาการแทรกจากโค้ด เนื่องจากกระบวนการทั้งสี่ไม่รู้อะไรเกี่ยวกับกันและกันฉันจึงสมมติว่ามันมีบางอย่างที่เกี่ยวข้องกับ SQL Server แต่ฉันไม่รู้ว่าทำไม ฉันต้องการทราบว่าทำไมสิ่งนี้ถึงเกิดขึ้นและหากมีการกำหนดค่าใด ๆ …

3
บังคับให้ Flow Distinct
ฉันมีโต๊ะแบบนี้: CREATE TABLE Updates ( UpdateId INT NOT NULL IDENTITY(1,1) PRIMARY KEY, ObjectId INT NOT NULL ) การติดตามการอัปเดตพื้นฐานไปยังวัตถุที่มี ID เพิ่มขึ้น ผู้ใช้บริการของตารางนี้จะเลือกรหัสวัตถุที่แตกต่างกัน 100 รายการเรียงลำดับตาม UpdateIdUpdateIdและเริ่มจากที่เฉพาะเจาะจง โดยพื้นฐานแล้วการติดตามจุดที่มันค้างไว้แล้วทำการสอบถามเพื่อรับการปรับปรุงใด ๆ ฉันพบสิ่งนี้เป็นปัญหาการปรับให้เหมาะสมที่น่าสนใจเพราะฉันสามารถสร้างแผนคิวรีที่เหมาะสมที่สุดโดยการเขียนคิวรีที่เกิดขึ้นกับสิ่งที่ฉันต้องการเนื่องจากดัชนี แต่ไม่รับประกันสิ่งที่ฉันต้องการ: SELECT DISTINCT TOP 100 ObjectId FROM Updates WHERE UpdateId > @fromUpdateId ที่ไหน @fromUpdateIdพารามิเตอร์กระบวนงานที่เก็บไว้ ด้วยแผนของ: SELECT <- TOP <- Hash match (flow distinct, …

2
เหตุใด TVP ต้องพร้อมใช้งานและทำไมพารามิเตอร์ประเภทอื่นไม่สามารถอ่านได้อย่างเดียว
ตามพารามิเตอร์บล็อกนี้สำหรับฟังก์ชั่นหรือขั้นตอนการจัดเก็บเป็นหลักผ่านตามมูลค่าถ้าพวกเขาไม่ได้OUTPUTพารามิเตอร์และถือว่าเป็นรุ่นที่ปลอดภัยกว่าของการอ้างอิงโดยใช้รหัสผ่านถ้าพวกเขาเป็นOUTPUTพารามิเตอร์ ในตอนแรกที่ผมคิดว่าเป้าหมายของการบังคับให้ TVP ที่จะได้รับการประกาศREADONLYเป็นอย่างชัดเจนส่งสัญญาณไปยังนักพัฒนาที่ TVP ไม่สามารถนำมาใช้เป็นOUTPUTพารามิเตอร์ แต่จะต้องมีมากขึ้นที่เกิดขึ้นเพราะเราไม่สามารถประกาศไม่ใช่ TVP READONLYเป็น ตัวอย่างเช่นล้มเหลว: create procedure [dbo].[test] @a int readonly as select @a ข่าวสารเกี่ยวกับ 346, ระดับ 15, สถานะ 1, การทดสอบขั้นตอน ไม่สามารถประกาศพารามิเตอร์ "@a" แบบเรียลไทม์ได้เนื่องจากไม่ใช่พารามิเตอร์ที่มีค่าเป็นตาราง เนื่องจากสถิติไม่ได้ถูกจัดเก็บใน TVP เหตุผลในการป้องกันการดำเนินงาน DML คืออะไร มันเกี่ยวข้องกับการไม่ต้องการให้ TVP เป็นOUTPUTพารามิเตอร์ด้วยเหตุผลบางอย่างหรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.