當使用 pymssql 連接 sql server 上不是 default 的 instance 時
如果是在 windows 平台上, 可以直接用
servername\instance 這樣的形式連上 sql server
但是在 linux 上就不行
一個可行的替代方案是 找出該 instance listen 的 port
然後用 servername:port 的方式連上 sql server
reference:
http://www.pymssql.org/en/latest/ref/pymssql.html#pymssql.Connection
2015年4月15日 星期三
pymssql needs commit if modify tables
用 pymssql 有一點需要注意的是 假如執行會修改 table 的 SQL 語句
在執行完必須要呼叫 commit
即使是執行 stored procedure 也是一樣
否則會發現 table 的內容都沒有被修改
在執行完必須要呼叫 commit
即使是執行 stored procedure 也是一樣
否則會發現 table 的內容都沒有被修改
2015年1月8日 星期四
SQL query with like
在 C# 使用 SQL query 的參數如果要加 % 的話, 要用 + 號
例如
例如
cmd.CommandText = "select * from MyTable where Arg like @Arg+'%'";
2014年10月13日 星期一
用 parameterized queries 防止 SQL Injection
當用程式做資料庫操作時, 不建議把 SQL command 直接寫在 code 裡面, 因為這樣常會有背 SQL injection 的風險, 比較好的方式是使用 parameterized queries.
例如:
reference:
http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php
http://stackoverflow.com/questions/8218867/c-sharp-sql-insert-command
例如:
string stmt = "INSERT INTO dbo.Test(id, name) VALUES(@ID, @Name)";
SqlCommand cmd = new SqlCommand(smt, _connection);
cmd.Parameters.Add("@ID", SqlDbType.Int);
cmd.Parameters.Add("@Name", SqlDbType.VarChar, 100);
for (int i = 0; i < 10000; i++)
{
cmd.Parameters["@ID"].Value = i;
cmd.Parameters["@Name"].Value = i.ToString();
cmd.ExecuteNonQuery();
}
reference:
http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php
http://stackoverflow.com/questions/8218867/c-sharp-sql-insert-command
2014年3月26日 星期三
資料表中的 Primary key 可以由多個 column 組成
在 SQL 資料庫中, 都知道一個 table 只能有一個 primary key.
但有點令人疑惑的是, 一個 primary key 可以不只是一個 column, 可以是多個 column.
如果在某個 table 中發現不只一個 column 被標記成 primary key 的話,
不是這個 table 有多個 primary key, 而是這個 table 的 primary key 由多個 column 組成
但有點令人疑惑的是, 一個 primary key 可以不只是一個 column, 可以是多個 column.
如果在某個 table 中發現不只一個 column 被標記成 primary key 的話,
不是這個 table 有多個 primary key, 而是這個 table 的 primary key 由多個 column 組成
2014年3月25日 星期二
SQL Server 資料庫表格關聯圖
markdown
SQL Server Management Studio 提供一個功能,以容易理解的圖型方式顯示資料表間的關聯性,在資料庫下面會有一個叫做 Database Diagrams 的資料夾,雙擊裡面的項目,資料表關聯圖就會顯示出來

若是想要新增資料表間的關聯性,也可以在這張圖表直接操作,簡單易懂
2013年11月24日 星期日
訂閱:
文章 (Atom)