解决SQL Server删除字段报错The object ‘DF__CompanyTr__Creat__0CDAE408’ is dependent on column ‘Created’.

问题描述

当我试图删除一个含有默认值得字段时

ALTER TABLE CompanyTransactions DROP COLUMN Created

报错如下:

Msg 5074, Level 16, State 1, Line 2
The object ‘DF__CompanyTr__Creat__0CDAE408’ is dependent on column ‘Created’.
Msg 4922, Level 16, State 9, Line 2
ALTER TABLE DROP COLUMN Created failed because one or more objects access this column.

解决方案

在删除列之前,必须从列中删除约束,引用的名称是默认约束。

alter table CompanyTransactions drop constraint df__CompanyTr__Creat__0cdae408;
alter table CompanyTransactions drop column Created;

 

在Python中使用create_engine()来连接远程SQL Server数据库,需要使用pyodbc驱动程序和ODBC数据源名称(DSN)。 首先,需要安装pyodbc模块和ODBC驱动程序。可以使用以下命令在命令行中安装pyodbc模块: ``` pip install pyodbc ``` 然后,需要创建一个ODBC数据源名称(DSN),以便在Python中访问远程SQL Server数据库。可以按照以下步骤创建ODBC数据源名称(DSN): 1. 在Windows操作系统中,打开“ODBC数据源管理员”(可以在控制面板中找到)。 2. 在“ODBC数据源管理员”窗口中,选择“系统DSN”选项卡。 3. 单击“添加”按钮,选择“SQL Server”驱动程序,并单击“完成”按钮。 4. 在“创建新的数据源”窗口中,输入数据源名称、描述、服务器名称和数据库名称,并指定身份验证方式和登录凭据。单击“下一步”按钮。 5. 在“选择默认数据库”窗口中,选择默认数据库并单击“下一步”按钮。 6. 在“确认”窗口中,单击“测试数据源”按钮以测试连接。如果连接成功,则单击“确定”按钮。 完成以上步骤后,可以使用以下Python代码连接远程SQL Server数据库: ``` from sqlalchemy import create_engine dsn = 'my_dsn' # 数据源名称(DSN) user = 'my_username' # 数据库用户名 password = 'my_password' # 数据库密码 host = 'my_server_name' # 数据库服务器名称 database = 'my_database_name' # 数据库名称 engine = create_engine(f'mssql+pyodbc://{user}:{password}@{host}/{database}?driver=ODBC+Driver+17+for+SQL+Server?trusted_connection=yes') ``` 在此代码中,使用create_engine()函数创建一个SQLAlchemy引擎对象。连接字符串中的驱动程序名称是“mssql+pyodbc”,用户名、密码、服务器名称和数据库名称是从DSN中获取的,而ODBC驱动程序名称是“ODBC Driver 17 for SQL Server”。 连接字符串还包括一个可选参数“trusted_connection=yes”,用于指定使用Windows身份验证进行身份验证。 完成以上步骤后,就可以使用SQLAlchemy查询远程SQL Server数据库了。例如,可以使用以下代码查询表中的数据: ``` from sqlalchemy import create_engine, Table, MetaData dsn = 'my_dsn' # 数据源名称(DSN) user = 'my_username' # 数据库用户名 password = 'my_password' # 数据库密码 host = 'my_server_name' # 数据库服务器名称 database = 'my_database_name' # 数据库名称 engine = create_engine(f'mssql+pyodbc://{user}:{password}@{host}/{database}?driver=ODBC+Driver+17+for+SQL+Server?trusted_connection=yes') metadata = MetaData() table = Table('my_table_name', metadata, autoload=True, autoload_with=engine) result = engine.execute(table.select()).fetchall() for row in result: print(row) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值