2017-02-02 1 views
0

Я работаю над различными базами данных. Мне нужно написать запрос, который будет возвращать таблицы имен, которые имеют первичный ключ с типом uniqueidentifier данных и которые не имеют значения по умолчанию для Значения по умолчанию или BindingЗапрос для возврата таблиц, которые не имеют значения по умолчанию или привязки для первичного ключа в SQL Server

enter image description here

Может кто-нибудь, пожалуйста, помогите мне? Заранее спасибо.

+0

[OFF-TOPIC] Почему вы создали ограничение по умолчанию на столбец первичного ключа? Я не вижу никакого использования этого. При max значение по умолчанию может быть вставлено только один раз –

+0

Я не создал никаких ограничений по умолчанию. Это старая база данных, созданная другим человеком, но я должен работать над ней. – pedram

+0

Посмотрите [здесь] (http://stackoverflow.com/questions/3930338/sql-server-get-table-primary-key-using-sql-query) и [здесь] (http://stackoverflow.com/вопросы/95967 /, как-делать-вы-лист-заместитель первичного ключа в своем SQL-сервер-таблицы). –

ответ

0

Я предпочитаю использовать INFORMATION_SCHEMA:

SELECT C.TABLE_CATALOG, 
     C.TABLE_SCHEMA, 
     C.TABLE_NAME, 
     C.COLUMN_NAME, 
     C.DATA_TYPE, 
     C.COLUMN_DEFAULT 
FROM INFORMATION_SCHEMA.COLUMNS C 
     INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE U 
      ON C.TABLE_CATALOG = U.TABLE_CATALOG 
       AND C.TABLE_SCHEMA = U.TABLE_SCHEMA 
       AND C.TABLE_NAME = U.TABLE_NAME 
       AND C.COLUMN_NAME = U.COLUMN_NAME 
WHERE OBJECTPROPERTY(OBJECT_ID(U.CONSTRAINT_SCHEMA + '.' + QUOTENAME(U.CONSTRAINT_NAME)), 'IsPrimaryKey') = 1 
     AND C.DATA_TYPE = 'uniqueidentifier' 
     AND C.COLUMN_DEFAULT IS NULL 
Смежные вопросы