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

Microsoft SQL Server เป็นระบบจัดการฐานข้อมูลเชิงสัมพันธ์ (RDBMS) ใช้แท็กนี้สำหรับ SQL Server ทุกรุ่นรวมถึง Compact, Express, Azure, Fast-track, APS (เดิมคือ PDW) และ Azure SQL DW อย่าใช้แท็กนี้สำหรับ DBMS ประเภทอื่น (MySQL, PostgreSQL, Oracle, ฯลฯ ) อย่าใช้แท็กนี้สำหรับปัญหาเกี่ยวกับซอฟต์แวร์และการพัฒนาอุปกรณ์พกพาเว้นแต่จะเกี่ยวข้องโดยตรงกับฐานข้อมูล

15
SQL Server เพิ่มคีย์หลักที่เพิ่มขึ้นอัตโนมัติไปยังตารางที่มีอยู่
ในฐานะที่เป็นชื่อฉันมีตารางที่มีอยู่ซึ่งมีประชากร 150000 รายการอยู่แล้ว ฉันได้เพิ่มคอลัมน์รหัส (ซึ่งปัจจุบันเป็นโมฆะ) ฉันสมมติว่าฉันสามารถเรียกใช้แบบสอบถามเพื่อเติมคอลัมน์นี้ด้วยตัวเลขที่เพิ่มขึ้นจากนั้นตั้งค่าเป็นคีย์หลักและเปิดใช้การเพิ่มอัตโนมัติ นี่เป็นวิธีที่ถูกต้องในการดำเนินการต่อหรือไม่? และถ้าเป็นเช่นนั้นฉันจะเติมตัวเลขเริ่มต้นได้อย่างไร


4
ทำให้คำสั่ง SQL ที่ตรงเป้าหมายคืออะไร?
ตามคำจำกัดความ (อย่างน้อยจากสิ่งที่ฉันเห็น) หมายถึงการที่สามารถระบุได้ว่าการสืบค้นมีความสามารถในการทำให้เอ็นจินการสืบค้นปรับแผนการดำเนินการที่เคียวรีใช้ให้เหมาะสม ฉันพยายามค้นหาคำตอบ แต่ดูเหมือนจะไม่มากในประเด็น ดังนั้นคำถามคืออะไรหรือไม่ทำให้แบบสอบถาม SQL sargable? เอกสารใด ๆ ที่จะได้รับการชื่นชมอย่างมาก สำหรับการอ้างอิง: SARGable

2
ฟอร์แมต SQL ใน SQL Server Management Studio
ใน Visual Studio และ IDE อื่น ๆ คุณสามารถจัดรูปแบบรหัสของคุณโดยอัตโนมัติด้วยแป้นพิมพ์ลัดผ่านเมนูหรืออัตโนมัติเมื่อคุณพิมพ์ ฉันสงสัยว่าถ้ายังมีวิธีเปิดใช้งานคุณลักษณะมาตรฐานนี้ใน SQL Server Management Studio อยู่หรือไม่ ฉันกำลังทำงานกับ procs ที่เก็บไว้ขนาดใหญ่ที่ยุ่งเหยิงวุ่นวายของ SQL ที่จัดรูปแบบไม่ดีและมันคงจะดีถ้าฉันสามารถไป "เลือกทั้งหมด -> ฟอร์แมต SQL"

7
เลือก SQL Server เป็น @variable หรือไม่
ฉันมีรหัสต่อไปนี้ในหนึ่งใน Sql ของฉัน (2008) Procs ที่เก็บไว้ซึ่งดำเนินการได้อย่างสมบูรณ์แบบ: CREATE PROCEDURE [dbo].[Item_AddItem] @CustomerId uniqueidentifier, @Description nvarchar(100), @Type int, @Username nvarchar(100), AS BEGIN DECLARE @TopRelatedItemId uniqueidentifier; SET @TopRelatedItemId = ( SELECT top(1) RelatedItemId FROM RelatedItems WHERE CustomerId = @CustomerId ) DECLARE @TempItem TABLE ( ItemId uniqueidentifier, CustomerId uniqueidentifier, Description nvarchar(100), Type int, Username nvarchar(100), …

14
ข้อผิดพลาดสตริงหรือข้อมูลไบนารีจะถูกตัดทอนเมื่อพยายามแทรก
ฉันกำลังเรียกใช้ไฟล์ data.bat ด้วยบรรทัดต่อไปนี้: Rem Tis batch file will populate tables cd\program files\Microsoft SQL Server\MSSQL osql -U sa -P Password -d MyBusiness -i c:\data.sql เนื้อหาของไฟล์ data.sql คือ: insert Customers (CustomerID, CompanyName, Phone) Values('101','Southwinds','19126602729') มีอีก 8 บรรทัดที่คล้ายกันสำหรับการเพิ่มบันทึก เมื่อฉันทำงานนี้ด้วยstart> run> cmd> c:\data.batฉันได้รับข้อความแสดงข้อผิดพลาดนี้: 1>2>3>4>5>....<1 row affected> Msg 8152, Level 16, State 4, Server SP1001, …
250 sql  sql-server 

4
ข้อ จำกัด ที่ไม่ซ้ำกันในหลายคอลัมน์
CREATE TABLE [dbo].[user]( [userID] [int] IDENTITY(1,1) NOT NULL, [fcode] [int] NULL, [scode] [int] NULL, [dcode] [int] NULL, [name] [nvarchar](50) NULL, [address] [nvarchar](50) NULL, CONSTRAINT [PK_user_1] PRIMARY KEY CLUSTERED ( [userID] ASC ) ) ON [PRIMARY] GO ฉันจะเพิ่มข้อ จำกัด เฉพาะสำหรับคอลัมน์ที่fcode, scode, dcodeมีt-sqlและ / หรือmanagement studioอย่างไร fcode, scode, dcodeจะต้องไม่ซ้ำกัน

19
ต้องการแสดงรายการทริกเกอร์ทั้งหมดในฐานข้อมูล SQL Server พร้อมชื่อตารางและสคีมาของตาราง
ฉันต้องการแสดงรายการทริกเกอร์ทั้งหมดในฐานข้อมูล SQL Server พร้อมชื่อตารางและสคีมาของตาราง ฉันเกือบจะมีสิ่งนี้: SELECT trigger_name = name, trigger_owner = USER_NAME(uid),table_schema = , table_name = OBJECT_NAME(parent_obj), isupdate = OBJECTPROPERTY( id, 'ExecIsUpdateTrigger'), isdelete = OBJECTPROPERTY( id, 'ExecIsDeleteTrigger'), isinsert = OBJECTPROPERTY( id, 'ExecIsInsertTrigger'), isafter = OBJECTPROPERTY( id, 'ExecIsAfterTrigger'), isinsteadof = OBJECTPROPERTY( id, 'ExecIsInsteadOfTrigger'), [disabled] = OBJECTPROPERTY(id, 'ExecIsTriggerDisabled') FROM sysobjects INNER JOIN …

2
ตรวจสอบว่าสายอักขระประกอบด้วยสตริงย่อยใน SQL Server 2005 โดยใช้กระบวนงานที่เก็บไว้
@mainString = 'CATCH ME IF YOU CAN'ฉันสตริง ฉันต้องการตรวจสอบว่าคำMEนั้นอยู่ข้างใน@mainStringหรือไม่ ฉันจะตรวจสอบว่าสตริงมีสตริงย่อยเฉพาะใน SQL ได้อย่างไร


12
ค่า NULL ภายใน NOT IN clause
ปัญหานี้ขึ้นมาเมื่อฉันได้นับระเบียนที่แตกต่างกันสำหรับสิ่งที่ฉันคิดว่าเป็นคำสั่งที่เหมือนหนึ่งใช้not in whereข้อ จำกัด left joinและอื่น ตารางในnot inข้อ จำกัด มีค่า Null หนึ่งค่า (ข้อมูลไม่ถูกต้อง) ซึ่งทำให้เคียวรีนั้นส่งคืนจำนวน 0 เรคคอร์ด ฉันเข้าใจว่าทำไม แต่ฉันสามารถใช้ความช่วยเหลือบางอย่างเพื่อให้เข้าใจแนวคิดได้อย่างสมบูรณ์ หากต้องการระบุอย่างง่ายเหตุใดแบบสอบถาม A ถึงส่งคืนผลลัพธ์ แต่ B ไม่ได้ A: select 'true' where 3 in (1, 2, 3, null) B: select 'true' where 3 not in (1, 2, null) สิ่งนี้อยู่บน SQL Server 2005 ฉันยังพบว่าการโทรset ansi_nulls …
245 sql  sql-server  tsql  null  notin 

11
ฉันจะสร้าง foreign key ใน SQL Server ได้อย่างไร
ฉันไม่เคยมีรหัสการสร้างออบเจ็กต์แบบ "เข้ารหัสด้วยมือ" สำหรับ SQL Server และการถอดรหัสคีย์ต่างประเทศดูเหมือนจะแตกต่างกันระหว่าง SQL Server และ Postgres นี่คือ sql ของฉันจนถึงตอนนี้: drop table exams; drop table question_bank; drop table anwser_bank; create table exams ( exam_id uniqueidentifier primary key, exam_name varchar(50), ); create table question_bank ( question_id uniqueidentifier primary key, question_exam_id uniqueidentifier not null, question_text varchar(1024) not null, question_point_value …
243 sql  sql-server  tsql 

21
มีวิธีการวนรอบตัวแปรตารางใน TSQL โดยไม่ใช้เคอร์เซอร์หรือไม่
สมมติว่าฉันมีตัวแปรตารางง่ายๆดังต่อไปนี้: declare @databases table ( DatabaseID int, Name varchar(15), Server varchar(15) ) -- insert a bunch rows into @databases การประกาศและการใช้เคอร์เซอร์เป็นตัวเลือกเดียวของฉันหากฉันต้องการวนซ้ำแถวหรือไม่? มีวิธีอื่นอีกไหม?
243 sql-server  tsql  loops 

10
แทรก SQL Server ถ้าไม่มีอยู่
ฉันต้องการแทรกข้อมูลลงในตารางของฉัน แต่แทรกเฉพาะข้อมูลที่ไม่มีอยู่ในฐานข้อมูลของฉัน นี่คือรหัสของฉัน: ALTER PROCEDURE [dbo].[EmailsRecebidosInsert] (@_DE nvarchar(50), @_ASSUNTO nvarchar(50), @_DATA nvarchar(30) ) AS BEGIN INSERT INTO EmailsRecebidos (De, Assunto, Data) VALUES (@_DE, @_ASSUNTO, @_DATA) WHERE NOT EXISTS ( SELECT * FROM EmailsRecebidos WHERE De = @_DE AND Assunto = @_ASSUNTO AND Data = @_DATA); END และข้อผิดพลาดคือ: ข่าวสารเกี่ยวกับ 156, ระดับ …

23
ฉันจะสำรองฐานข้อมูล SQL Server ระยะไกลไปยังไดรฟ์ภายในได้อย่างไร
ฉันต้องการคัดลอกฐานข้อมูลจากเซิร์ฟเวอร์ระยะไกลไปยังเซิร์ฟเวอร์ท้องถิ่น ฉันพยายามใช้ SQL Server Management Studio แต่สำรองได้เฉพาะไดรฟ์บนเซิร์ฟเวอร์ระยะไกลเท่านั้น บางจุด: ฉันไม่มีสิทธิ์เข้าถึงรีโมตเซิร์ฟเวอร์ในวิธีที่ฉันสามารถคัดลอกไฟล์ได้ ฉันไม่สามารถเข้าถึงการตั้งค่าเส้นทาง UNC ไปยังเซิร์ฟเวอร์ของฉันได้ ความคิดใด ๆ ของฉันจะคัดลอกฐานข้อมูลนี้ได้อย่างไร ฉันจะต้องใช้เครื่องมือของบุคคลที่สามหรือไม่
241 sql  sql-server  backup 

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