1. 程式人生 > >python連線SQLServer資料庫建立資料表同時為每個欄位加上對應的中文註釋資訊

python連線SQLServer資料庫建立資料表同時為每個欄位加上對應的中文註釋資訊

      今天應產品那邊的需求更改,需要在原始的建立資料表的指令碼中加入註釋這一項,SQLServer資料庫其實我是很不熟的,這一段時間完全是因為專案的緣故才會比較多的接觸到這一塊內容,學習一下覺得挺好的。之前的建立表的指令碼寫的也是很low的,當然現在也是比較low的,但是實現需求為主吧,後期再做調整。

      下午查了很多資料,網上關於這個講的部落格也是很多的,可能是自己悟性太低了,大多都是告訴你命令是什麼,沒有一個系統的例子,我這裡經過實踐,寫了一個python版本的小Demo放上來,一起學習一下吧,下面是具體的實踐:

#!usr/bin/env python
# encoding:utf-8

'''
__Author__:沂水寒城
功能: SQLServer資料庫表建立同時為每個欄位新增相應的註釋
'''


import sys
import time
import pymssql


reload(sys)
sys.setdefaultencoding("utf-8")


def createTable(config_dict,table='data'):
    '''
    建立資料表,並新增對應欄位的中文註釋資訊
    '''
    try:
        connect=pymssql.connect(**config_dict)
        cursor=connect.cursor() 
        cursor.execute("""
        IF OBJECT_ID('%s', 'U') IS NOT NULL
        DROP TABLE %s
        CREATE TABLE %s (
            PKID VARCHAR(200) NOT NULL,
            DATA VARCHAR(3000) NULL,
            PRIMARY KEY(PKID)
        )
        execute sp_addextendedproperty 'Description','資料主鍵','user','dbo','table',%s,'column','PKID'
        execute sp_addextendedproperty 'Description','資料內容','user','dbo','table',%s,'column','DATA'
        """ %(table,table,table,table,table))
        connect.commit()  #提交資料庫事物操作
        connect.close()
        cursor.close()
        print 'createTable SUCCESS!'
    except Exception,e:
        print 'createTable ERROR: ',e


if __name__=='__main__':
    config_dict={
            'user':'你的使用者名稱',
            'password':'你的密碼',
            'host':'你的資料庫IP地址',
            'database':'你的資料庫名稱'
            }

    createTable(config_dict,table='data')

      欄位的註釋在下面這一條語句中被加入了:

execute sp_addextendedproperty 'Description','資料主鍵','user','dbo','table',%s,'column','PKID'

        不同的資料欄位只需要修改裡面的註釋內容(如:“資料主鍵”)和欄位名稱(如:“PKID”)即可,其他的都不需要做修改。

          每次在網上查類似解決方法的時候都是比較喜歡“拿來主義”的,就是想有現成的例子可以讓我直接拿過來用,畢竟實現是第一位嘛。 這裡的程式碼感興趣都是可以複製過去直接執行的。

    結果如下:

createTable SUCCESS!
[Finished in 0.3s]

     學習了!