Saya tidak melihat pertanyaan serupa yang diajukan pada topik ini, dan saya harus meneliti ini untuk sesuatu yang sedang saya kerjakan sekarang. Kupikir aku akan mengirim jawaban untuk itu kalau-kalau ada orang yang memiliki pertanyaan yang sama.
sql
sql-server
line-breaks
Mark Struzinski
sumber
sumber
Jawaban:
char(13)
adalahCR
. UntukCRLF
linebreak gaya DOS / Windows , Anda inginchar(13)+char(10)
, seperti:sumber
+
, SQL Server akan mulai mengeluh bahwa permintaan Anda terlalu bersarang. Solusi saya bukannya menggunakan jawaban Rob Cooper sebagai gantinya, tetapi dengan token yang jauh lebih lama dan lebih jelas.Saya menemukan jawabannya di sini: http://blog.sqlauthority.com/2007/08/22/sql-server-t-sql-script-to-insert-carriage-return-and-new-line-feed-in- kode/
Anda baru saja menyatukan string dan memasukkan di
CHAR(13)
mana Anda ingin jeda baris Anda.Contoh:
Ini mencetak yang berikut ini:
sumber
NCHAR(0x1234)
untuk mendapatkan karakter unicode. Tidak perlu untuk menyisipkan jeda baris, tetapi bisa berguna jika seseorang harus memasukkan / mencari karakter unicode.print
bukanselect
, seperti:DECLARE @text NVARCHAR(100); SET @text = 'This is line 1.' + CHAR(13) + 'This is line 2.'; print @text;
Cara lain untuk melakukan ini adalah sebagai berikut:
Artinya, cukup menyisipkan satu baris ke dalam kueri Anda saat menulisnya akan menambah seperti pada database. Ini berfungsi di SQL server Management studio dan Query Analyzer. Saya percaya ini juga akan berfungsi di C # jika Anda menggunakan tanda @ pada string.
sumber
Jalankan ini dalam SSMS, ini menunjukkan bagaimana jeda baris dalam SQL itu sendiri menjadi bagian dari nilai string yang menjangkau garis:
Hasil:
Baris 1
Baris 2
Baris 3
Berapa lama umpan baris kosong?
2
Apa nilai-nilai ASCII?
13
10
Atau jika Anda lebih suka menentukan string Anda pada satu baris (hampir!) Anda dapat menggunakan
REPLACE()
seperti ini (opsional digunakanCHAR(13)+CHAR(10)
sebagai pengganti):sumber
Mengikuti Google ...
Mengambil kode dari situs web:
Sepertinya itu bisa dilakukan dengan mengganti placeholder dengan CHAR (13)
Pertanyaan bagus, tidak pernah melakukannya sendiri :)
sumber
Saya tiba di sini karena saya khawatir bahwa cr-lfs yang saya tentukan dalam string C # tidak ditampilkan dalam respons kueri SQl Server Management Studio.
Ternyata, mereka ada di sana, tetapi tidak ditampilkan.
Untuk "melihat" cr-lfs, gunakan pernyataan cetak seperti:
sumber
Berikut adalah fungsi C # yang menambahkan baris teks ke gumpalan teks yang ada, dibatasi oleh CRLF, dan mengembalikan ekspresi T-SQL yang cocok untuk
INSERT
atauUPDATE
operasi. Ada beberapa kesalahan kepemilikan kami di dalamnya, tetapi begitu Anda mencabutnya, mungkin akan membantu - saya harap begitu.sumber
aku akan mengatakan
atau
sumber
Ini selalu keren, karena ketika Anda mendapatkan daftar yang diekspor dari, katakanlah Oracle, maka Anda mendapatkan catatan yang mencakup beberapa baris, yang pada gilirannya dapat menarik untuk, katakanlah, file cvs, jadi waspadalah.
Bagaimanapun, jawaban Rob baik, tetapi saya akan menyarankan menggunakan sesuatu selain dari @, coba beberapa lagi, seperti §§ @@ §§ atau sesuatu, jadi itu akan memiliki kesempatan untuk beberapa keunikan. (Tapi tetap saja, ingat panjang bidang
varchar
/ yangnvarchar
Anda masukkan ke ..)sumber
Semua opsi ini bekerja tergantung pada situasi Anda, tetapi Anda mungkin tidak melihat satu pun dari mereka bekerja jika Anda menggunakan SSMS (seperti yang disebutkan dalam beberapa komentar SSMS menyembunyikan CR / LFs)
Jadi daripada mengarahkan diri Anda di tikungan, Periksa pengaturan ini di
Tools
|
Options
sumber