Kami memiliki tabel SQL lama yang digunakan oleh SQL Server 2000 selama hampir 10 tahun.
Di dalamnya, nomor lencana karyawan kami disimpan mulai char(6)
dari 000001
hingga 999999
.
Saya sedang menulis aplikasi web sekarang, dan saya perlu menyimpan nomor lencana karyawan.
Di tabel baru saya, saya dapat mengambil jalan pintas dan menyalin tabel lama, tetapi saya berharap transfer data yang lebih baik, ukuran yang lebih kecil, dll, hanya dengan menyimpan int
nilai from 1
to 999999
.
Di C #, saya dapat dengan cepat memformat int
nilai untuk nomor lencana menggunakan
public static string GetBadgeString(int badgeNum) {
return string.Format("{0:000000}", badgeNum);
// alternate
// return string.Format("{0:d6}", badgeNum);
}
Bagaimana cara mengubah kueri SQL sederhana ini untuk memformat nilai yang dikembalikan juga?
SELECT EmployeeID
FROM dbo.RequestItems
WHERE ID=0
Jika EmployeeID
7135, kueri ini harus kembali 007135
.
FORMAT
fungsi seperti C # :-)
int
Nilai - nilai memakan ruang yang jauh lebih sedikit char(6)
, dan akan ada beberapa entri ini per bagian yang diproduksi. Efisiensi.
DATALENGTH()
) masing-masing dua byte. Karena kolom mungkin dalam indeks, Anda bisa menghemat lebih dari 2MB. Dan dengan kolom lain ditambahkan, 2 byte itu mungkin cukup untuk mengurangi panjang baris yang cukup untuk menyimpan halaman 4KB per baris. Apakah ini akan dihosting di platform seluler, atau mungkinkah Anda memfokuskan perhatian Anda di area yang tidak produktif?
0
sangat penting untuk bidang ini, mengapa mengubahnyaINT
sama sekali?