Rules:
https://developer.yahoo.com/performance/rules.html
https://developers.google.com/speed/docs/insights/rules
Tool:
http://yslow.org/
Thứ Năm, 10 tháng 3, 2016
Thứ Sáu, 26 tháng 2, 2016
char and varchar (Transact-SQL)
https://msdn.microsoft.com/en-us/library/ms176089.aspx
Note:
char là kiểu fixed length nên nếu dùng không đúng trong 1 số trường hợp sẽ gây ra code chạy không như mong đợi.
Ví dụ khai báo biến kiểu char(20) sau đó gắn giá trị 10 ký tự thì 10 ký tự còn lại sẽ là khoảng trắng.
Note:
char là kiểu fixed length nên nếu dùng không đúng trong 1 số trường hợp sẽ gây ra code chạy không như mong đợi.
Ví dụ khai báo biến kiểu char(20) sau đó gắn giá trị 10 ký tự thì 10 ký tự còn lại sẽ là khoảng trắng.
Thứ Hai, 22 tháng 2, 2016
Đoạn code Format Number ( ngắt theo ngàn, triệu ... ) bằng Javascript
Viết lại từ phiên bản C# và xử lý thêm trường hợp số âm
http://www.hanhtranglaptrinh.com/2011/12/oan-code-format-number-ngat-theo-ngan.html
http://www.hanhtranglaptrinh.com/2011/12/oan-code-format-number-ngat-theo-ngan.html
var insertAt = function (originalStr, index, string) { return originalStr.substr(0, index) + string + originalStr.substr(index); } var formatNumber = function (number) { var rs; var part = number.replace("-", "").split('.'); var len = part[0].length; var i = parseInt(len / 3); if (i > 0) { var pos = len % 3; if (pos > 0) { part[0] = insertAt(part[0],pos, ","); pos += 4; } else { pos = 3; } for (var k = 1; k < i; k++) { part[0] = insertAt(part[0],pos, ","); pos += 4; } } if (number.indexOf(".") >= 0) { rs = part[0] + "." + part[1]; } else rs = part[0]; if (number.indexOf("-") == 0) rs = "-" + rs; return rs; }
Chủ Nhật, 21 tháng 2, 2016
Thứ Sáu, 15 tháng 1, 2016
Thứ Năm, 14 tháng 1, 2016
Drop and Re-Create All Foreign Key Constraints in SQL Server
Reference: https://www.mssqltips.com/sqlservertip/3347/drop-and-recreate-all-foreign-key-constraints-in-sql-server/
CREATE TABLE #x -- feel free to use a permanent table ( drop_script NVARCHAR(MAX), create_script NVARCHAR(MAX) ); DECLARE @drop NVARCHAR(MAX) = N'', @create NVARCHAR(MAX) = N''; -- drop is easy, just build a simple concatenated list from sys.foreign_keys: SELECT @drop += N' ALTER TABLE ' + QUOTENAME(cs.name) + '.' + QUOTENAME(ct.name) + ' DROP CONSTRAINT ' + QUOTENAME(fk.name) + ';' FROM sys.foreign_keys AS fk INNER JOIN sys.tables AS ct ON fk.parent_object_id = ct.[object_id] INNER JOIN sys.schemas AS cs ON ct.[schema_id] = cs.[schema_id]; INSERT #x(drop_script) SELECT @drop; -- create is a little more complex. We need to generate the list of -- columns on both sides of the constraint, even though in most cases -- there is only one column. SELECT @create += N' ALTER TABLE ' + QUOTENAME(cs.name) + '.' + QUOTENAME(ct.name) + ' ADD CONSTRAINT ' + QUOTENAME(fk.name) + ' FOREIGN KEY (' + STUFF((SELECT ',' + QUOTENAME(c.name) -- get all the columns in the constraint table FROM sys.columns AS c INNER JOIN sys.foreign_key_columns AS fkc ON fkc.parent_column_id = c.column_id AND fkc.parent_object_id = c.[object_id] WHERE fkc.constraint_object_id = fk.[object_id] ORDER BY fkc.constraint_column_id FOR XML PATH(N''), TYPE).value(N'.[1]', N'nvarchar(max)'), 1, 1, N'') + ') REFERENCES ' + QUOTENAME(rs.name) + '.' + QUOTENAME(rt.name) + '(' + STUFF((SELECT ',' + QUOTENAME(c.name) -- get all the referenced columns FROM sys.columns AS c INNER JOIN sys.foreign_key_columns AS fkc ON fkc.referenced_column_id = c.column_id AND fkc.referenced_object_id = c.[object_id] WHERE fkc.constraint_object_id = fk.[object_id] ORDER BY fkc.constraint_column_id FOR XML PATH(N''), TYPE).value(N'.[1]', N'nvarchar(max)'), 1, 1, N'') + ');' FROM sys.foreign_keys AS fk INNER JOIN sys.tables AS rt -- referenced table ON fk.referenced_object_id = rt.[object_id] INNER JOIN sys.schemas AS rs ON rt.[schema_id] = rs.[schema_id] INNER JOIN sys.tables AS ct -- constraint table ON fk.parent_object_id = ct.[object_id] INNER JOIN sys.schemas AS cs ON ct.[schema_id] = cs.[schema_id] WHERE rt.is_ms_shipped = 0 AND ct.is_ms_shipped = 0; UPDATE #x SET create_script = @create; PRINT @drop; PRINT @create; /* EXEC sp_executesql @drop -- clear out data etc. here EXEC sp_executesql @create; */
Thứ Sáu, 11 tháng 12, 2015
Đăng ký:
Bài đăng
(
Atom
)